changeset 22446:8bfe8a2fed69

director: Fix rapid reconnection on failed outgoing connections 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.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Fri, 18 Aug 2017 11:09:41 +0300
parents a8a699e23949
children 7bc2a582673e
files src/director/director-connection.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/director-connection.c	Fri Aug 18 11:22:52 2017 +0300
+++ b/src/director/director-connection.c	Fri Aug 18 11:09:41 2017 +0300
@@ -2167,7 +2167,8 @@
 	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 */