Mercurial > dovecot > core-2.2
changeset 21985:fcf49c0c6614
imap: Use client_add_capability() for adding all dynamic capabilities
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 24 Apr 2017 18:51:53 +0300 |
parents | 855908f469d8 |
children | b9b9c45e0ba8 |
files | src/imap/imap-client.c |
diffstat | 1 files changed, 9 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/imap/imap-client.c Mon Apr 24 18:12:55 2017 +0300 +++ b/src/imap/imap-client.c Mon Apr 24 18:51:53 2017 +0300 @@ -92,7 +92,6 @@ struct client *client; const char *ident; pool_t pool; - bool explicit_capability = FALSE; /* always use nonblocking I/O */ net_set_nonblock(fd_in, TRUE); @@ -143,25 +142,24 @@ if (*set->imap_capability == '\0') str_append(client->capability_string, CAPABILITY_STRING); else if (*set->imap_capability != '+') { - explicit_capability = TRUE; str_append(client->capability_string, set->imap_capability); } else { str_append(client->capability_string, CAPABILITY_STRING); str_append_c(client->capability_string, ' '); str_append(client->capability_string, set->imap_capability + 1); } - if (user->fuzzy_search && !explicit_capability) { + if (user->fuzzy_search) { /* Enable FUZZY capability only when it actually has a chance of working */ - str_append(client->capability_string, " SEARCH=FUZZY"); + client_add_capability(client, "SEARCH=FUZZY"); } mail_set = mail_user_set_get_storage_set(user); - if (mail_set->mailbox_list_index && !explicit_capability) { + if (mail_set->mailbox_list_index) { /* NOTIFY is enabled only when mailbox list indexes are enabled, although even that doesn't necessarily guarantee it always */ - str_append(client->capability_string, " NOTIFY"); + client_add_capability(client, "NOTIFY"); } if (*set->imap_urlauth_host != '\0' && @@ -169,18 +167,17 @@ /* Enable URLAUTH capability only when dict is configured correctly */ client_init_urlauth(client); - if (!explicit_capability) - str_append(client->capability_string, " URLAUTH URLAUTH=BINARY"); + client_add_capability(client, "URLAUTH"); + client_add_capability(client, "URLAUTH=BINARY"); } if (set->imap_metadata && *mail_set->mail_attribute_dict != '\0') { client->imap_metadata_enabled = TRUE; - if (!explicit_capability) - str_append(client->capability_string, " METADATA"); + client_add_capability(client, "METADATA"); } - if (!explicit_capability && user_has_special_use_mailboxes(user)) { + if (user_has_special_use_mailboxes(user)) { /* Advertise SPECIAL-USE only if there are actually some SPECIAL-USE flags in mailbox configuration. */ - str_append(client->capability_string, " SPECIAL-USE"); + client_add_capability(client, "SPECIAL-USE"); } ident = mail_user_get_anvil_userip_ident(client->user);