]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login-proxy: Support reconnecting also when connect() immediately fails
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 29 Apr 2020 09:51:52 +0000 (12:51 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 25 May 2020 08:38:55 +0000 (08:38 +0000)
This can happen when connecting to localhost.

src/login-common/login-proxy.c

index 4377883a9937d5dd90df428dbe46bd5a4aed1a88..67af767e6c6131132087633b9a1f78c1b3464984 100644 (file)
@@ -334,12 +334,10 @@ static int login_proxy_connect(struct login_proxy *proxy)
                                          proxy->source_ip.family == 0 ? NULL :
                                          &proxy->source_ip);
        if (proxy->server_fd == -1) {
-               string_t *str = t_str_new(128);
-               proxy_connect_error_append(proxy, FALSE, str);
-               login_proxy_failed(proxy, proxy->event,
-                                  LOGIN_PROXY_FAILURE_TYPE_CONNECT,
-                                  str_c(str));
-               return -1;
+               if (!proxy_connect_failed(proxy))
+                       return -1;
+               /* trying to reconnect later */
+               return 0;
        }
        proxy->server_io = io_add(proxy->server_fd, IO_WRITE,
                                  proxy_wait_connect, proxy);