]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Fix rapid reconnection on failed outgoing connections
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 18 Aug 2017 08:09:41 +0000 (11:09 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 18 Aug 2017 08:09:41 +0000 (11:09 +0300)
last_network_failure wasn't set, which caused a failed outgoing connection
to immediately reconnect to it. This resulted in rapid logging of
connect() errors.

src/director/director-connection.c

index da97cda0a14d201a6f7fa5a3add6358f594e2ebc..59b7f98e3c5d2aaaed956916c951e7eb8feb461d 100644 (file)
@@ -2167,7 +2167,8 @@ static void director_connection_disconnected(struct director_connection **_conn,
        struct director_connection *conn = *_conn;
        struct director *dir = conn->dir;
 
-       if (conn->connected_time.tv_sec + DIRECTOR_SUCCESS_MIN_CONNECT_SECS > ioloop_time &&
+       if ((conn->connected_time.tv_sec == 0 ||
+            conn->connected_time.tv_sec + DIRECTOR_SUCCESS_MIN_CONNECT_SECS > ioloop_time) &&
            conn->host != NULL) {
                /* connection didn't exist for very long, assume it has a
                   network problem */