]> 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>
Tue, 22 Aug 2017 11:11:13 +0000 (14:11 +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 72856b27ceaf45b92e60ee80f94f28e58138ab9b..ac48f944bd8c7d3296bb9e07b2c3a7f4d537126d 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 */