]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap-login: If CAPABILITY is already in server banner, don't ask for it again.
authorTimo Sirainen <tss@iki.fi>
Mon, 24 Jun 2013 20:33:59 +0000 (23:33 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 24 Jun 2013 20:33:59 +0000 (23:33 +0300)
src/imap-login/imap-proxy.c

index ba254de6b12d81d00bf8a0bcfa08c5f477f8967a..53069396c122b9a784c9be38e4374b20ddb7c962 100644 (file)
@@ -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);