From 826df5e80bc6c8e33dfb37b50873620a836c60da Mon Sep 17 00:00:00 2001 From: Timo Sirainen <timo.sirainen@open-xchange.com> Date: Fri, 10 Apr 2020 20:03:18 +0300 Subject: [PATCH] global: Adjust to str_begins() API changes --- src/lib-sieve-tool/sieve-tool.c | 4 ++-- .../environment/ext-environment-common.c | 21 +++++++------------ .../plugins/notify/ext-notify-common.c | 2 +- src/lib-sieve/plugins/vacation/cmd-vacation.c | 2 +- .../storage/file/sieve-file-storage-save.c | 4 ++-- src/lib-sieve/storage/ldap/sieve-ldap-db.c | 2 +- .../doveadm-sieve/doveadm-sieve-sync.c | 10 ++++----- 7 files changed, 19 insertions(+), 26 deletions(-) diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index 435f97380..b034b1657 100644 --- a/src/lib-sieve-tool/sieve-tool.c +++ b/src/lib-sieve-tool/sieve-tool.c @@ -644,9 +644,9 @@ void sieve_tool_dump_binary_to(struct sieve_binary *sbin, void sieve_tool_parse_trace_option(struct sieve_trace_config *tr_config, const char *tr_option) { - if (str_begins(tr_option, "level=")) { - const char *lvl = &tr_option[6]; + const char *lvl; + if (str_begins(tr_option, "level=", &lvl)) { if (strcmp(lvl, "none") == 0) { tr_config->level = SIEVE_TRLVL_NONE; } else if (strcmp(lvl, "actions") == 0) { diff --git a/src/lib-sieve/plugins/environment/ext-environment-common.c b/src/lib-sieve/plugins/environment/ext-environment-common.c index d145b0e60..663fabddb 100644 --- a/src/lib-sieve/plugins/environment/ext-environment-common.c +++ b/src/lib-sieve/plugins/environment/ext-environment-common.c @@ -158,26 +158,21 @@ ext_environment_item_lookup(struct ext_environment_interpreter_context *ctx, const char **_name) { const struct sieve_environment_item *item; - const char *name = *_name; + const char *suffix, *name = *_name; item = hash_table_lookup(ctx->name_items, name); if (item != NULL) return item; array_foreach_elem(&ctx->prefix_items, item) { - size_t prefix_len; - i_assert(item->prefix); - prefix_len = strlen(item->name); - - if (str_begins(name, item->name)) { - if (name[prefix_len] == '.') { - *_name = &name[prefix_len+1]; - return item; - } else if (name[prefix_len] == '\0') { - *_name = &name[prefix_len]; - return item; - } + + if (str_begins(name, item->name, &suffix)) { + if (*suffix == '.') + ++suffix; + + *_name = suffix; + return item; } } return NULL; diff --git a/src/lib-sieve/plugins/notify/ext-notify-common.c b/src/lib-sieve/plugins/notify/ext-notify-common.c index 589b21bfd..cda0ff9d8 100644 --- a/src/lib-sieve/plugins/notify/ext-notify-common.c +++ b/src/lib-sieve/plugins/notify/ext-notify-common.c @@ -145,7 +145,7 @@ static bool _is_text_content(const struct message_header_line *hdr) /* Success */ data = str_c(content_type); - if (str_begins(data, "text/")) + if (str_begins_with(data, "text/")) return TRUE; return FALSE; } diff --git a/src/lib-sieve/plugins/vacation/cmd-vacation.c b/src/lib-sieve/plugins/vacation/cmd-vacation.c index ddc14be3b..b8999ab7c 100644 --- a/src/lib-sieve/plugins/vacation/cmd-vacation.c +++ b/src/lib-sieve/plugins/vacation/cmd-vacation.c @@ -877,7 +877,7 @@ static inline bool _is_system_address(const struct smtp_address *address) return TRUE; if (strstr(address->localpart, "-request") != NULL) return TRUE; - if (str_begins(address->localpart, "owner-")) + if (str_begins_with(address->localpart, "owner-")) return TRUE; return FALSE; } diff --git a/src/lib-sieve/storage/file/sieve-file-storage-save.c b/src/lib-sieve/storage/file/sieve-file-storage-save.c index dd2306696..3c0f6e55a 100644 --- a/src/lib-sieve/storage/file/sieve-file-storage-save.c +++ b/src/lib-sieve/storage/file/sieve-file-storage-save.c @@ -222,9 +222,9 @@ int sieve_file_storage_save_init(struct sieve_storage_save_context *sctx, svext = strrchr(fstorage->active_fname, '.'); namelen = svext - fstorage->active_fname; - if ( svext != NULL && str_begins(svext+1, "sieve") && + if ( svext != NULL && str_begins_with(svext+1, "sieve") && strlen(scriptname) == namelen && - str_begins(fstorage->active_fname, scriptname) ) + str_begins_with(fstorage->active_fname, scriptname) ) { sieve_storage_set_error(storage, SIEVE_ERROR_BAD_PARAMS, diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c index 8da710f2e..2fb16d674 100644 --- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c +++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c @@ -836,7 +836,7 @@ int sieve_ldap_db_connect(struct ldap_connection *conn) if (ret != LDAP_SUCCESS) { if (ret == LDAP_OPERATIONS_ERROR && set->uris != NULL && - str_begins(set->uris, "ldaps:")) { + str_begins_with(set->uris, "ldaps:")) { e_error(storage->event, "db: " "Don't use both tls=yes and ldaps URI"); } diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c index 236638239..86a706ef6 100644 --- a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c +++ b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c @@ -292,12 +292,11 @@ sieve_attribute_set_sieve(struct mail_storage *storage, if (strcmp(key, MAILBOX_ATTRIBUTE_SIEVE_DEFAULT) == 0) return sieve_attribute_set_default(storage, svstorage, value); - if (!str_begins(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE_FILES)) { + if (!str_begins(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE_FILES, &scriptname)) { mail_storage_set_error(storage, MAIL_ERROR_NOTFOUND, "Nonexistent sieve attribute"); return -1; } - scriptname = key + strlen(MAILBOX_ATTRIBUTE_PREFIX_SIEVE_FILES); if (value->value != NULL) { input = i_stream_create_from_data(value->value, @@ -370,7 +369,7 @@ sieve_attribute_set(struct mailbox_transaction_context *t, if (t->box->storage->user->dsyncing && type == MAIL_ATTRIBUTE_TYPE_PRIVATE && - str_begins(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE)) { + str_begins_with(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE)) { time_t ts = (value->last_change != 0 ? value->last_change : ioloop_time); @@ -516,14 +515,13 @@ sieve_attribute_get_sieve(struct mail_storage *storage, const char *key, if (strcmp(key, MAILBOX_ATTRIBUTE_SIEVE_DEFAULT) == 0) return sieve_attribute_get_default(storage, svstorage, value_r); - if (!str_begins(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE_FILES)) + if (!str_begins(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE_FILES, &scriptname)) return 0; if ((value_r->flags & MAIL_ATTRIBUTE_VALUE_FLAG_INT_STREAMS) == 0) { mail_storage_set_error(storage, MAIL_ERROR_PARAMS, "Sieve attributes are available only as streams"); return -1; } - scriptname = key + strlen(MAILBOX_ATTRIBUTE_PREFIX_SIEVE_FILES); script = sieve_storage_open_script(svstorage, scriptname, NULL); if ((ret=sieve_attribute_retrieve_script (storage, svstorage, script, FALSE, value_r, &errstr)) < 0) { @@ -545,7 +543,7 @@ sieve_attribute_get(struct mailbox *box, if (box->storage->user->dsyncing && type == MAIL_ATTRIBUTE_TYPE_PRIVATE && - str_begins(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE)) { + str_begins_with(key, MAILBOX_ATTRIBUTE_PREFIX_SIEVE)) { ret = sieve_attribute_get_sieve(box->storage, key, value_r); if (ret >= 0 && user->mail_debug) { -- GitLab