From: Timo Sirainen Date: Mon, 24 Jun 2013 20:33:59 +0000 (+0300) Subject: imap-login: If CAPABILITY is already in server banner, don't ask for it again. X-Git-Tag: 2.2.4~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5324117274df8564eeaebe369cb1eca76edb3165;p=thirdparty%2Fdovecot%2Fcore.git imap-login: If CAPABILITY is already in server banner, don't ask for it again. --- diff --git a/src/imap-login/imap-proxy.c b/src/imap-login/imap-proxy.c index ba254de6b1..53069396c1 100644 --- a/src/imap-login/imap-proxy.c +++ b/src/imap-login/imap-proxy.c @@ -63,7 +63,8 @@ static int proxy_write_login(struct imap_client *client, string_t *str) unsigned int len; const char *mech_name, *error; - str_append(str, "C CAPABILITY\r\n"); + if (client->proxy_backend_capability == NULL) + str_append(str, "C CAPABILITY\r\n"); if (client->common.proxy_mech == NULL) { /* logging in normally - use LOGIN command */ @@ -129,6 +130,9 @@ static int proxy_input_banner(struct imap_client *client, proxy_write_id(client, str); if (str_array_icase_find(capabilities, "SASL-IR")) client->proxy_sasl_ir = TRUE; + i_free(client->proxy_backend_capability); + client->proxy_backend_capability = + i_strdup(t_strcut(line + 5 + 12, ']')); } ssl_flags = login_proxy_get_ssl_flags(client->common.login_proxy);