]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap-proxy: Recent changes caused CAPABILITY repeating with pipelining disabled.
authorTimo Sirainen <tss@iki.fi>
Wed, 15 Jan 2014 20:03:22 +0000 (15:03 -0500)
committerTimo Sirainen <tss@iki.fi>
Wed, 15 Jan 2014 20:03:22 +0000 (15:03 -0500)
src/imap-login/client.h
src/imap-login/imap-proxy.c

index 887c0c217751bae03cc3569393b11d925507fa81..1209402258fdd8b6267116e5b1d5f8f1645f1637 100644 (file)
@@ -21,6 +21,7 @@ struct imap_client {
        unsigned int proxy_seen_banner:1;
        unsigned int skip_line:1;
        unsigned int id_logged:1;
+       unsigned int proxy_capability_request_sent:1;
        unsigned int client_ignores_capability_resp_code:1;
        unsigned int auth_mech_name_parsed:1;
 };
index db299c485f6004bcb3e90af90a0beab81baae6fa..e0a491bd9bd90f0fcb49cd879bf4f401a0402e5b 100644 (file)
@@ -69,8 +69,10 @@ static int proxy_write_login(struct imap_client *client, string_t *str)
           it), send the (unnecessary) CAPABILITY command to backend as well
           to avoid sending the CAPABILITY reply twice (untagged and OK resp
           code). */
-       if (client->proxy_backend_capability == NULL ||
-           client->client_ignores_capability_resp_code) {
+       if (!client->proxy_capability_request_sent &&
+           (client->proxy_backend_capability == NULL ||
+            client->client_ignores_capability_resp_code)) {
+               client->proxy_capability_request_sent = TRUE;
                str_append(str, "C CAPABILITY\r\n");
                if (client->common.proxy_nopipelining) {
                        /* authenticate only after receiving C OK reply. */