From: Timo Sirainen Date: Wed, 29 Apr 2020 09:51:52 +0000 (+0300) Subject: login-proxy: Support reconnecting also when connect() immediately fails X-Git-Tag: 2.3.13~672 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f61c5da816f31c5d6daa0adb5bedbd5dfdf4a82d;p=thirdparty%2Fdovecot%2Fcore.git login-proxy: Support reconnecting also when connect() immediately fails This can happen when connecting to localhost. --- diff --git a/src/login-common/login-proxy.c b/src/login-common/login-proxy.c index 4377883a99..67af767e6c 100644 --- a/src/login-common/login-proxy.c +++ b/src/login-common/login-proxy.c @@ -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);