From: Timo Sirainen Date: Wed, 15 Nov 2017 22:44:17 +0000 (+0200) Subject: director: Reconnect after detecting a write failure to director X-Git-Tag: 2.3.0.rc1~444 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3a7a8b3685eb946a2153b9af92bc545800935a95;p=thirdparty%2Fdovecot%2Fcore.git director: Reconnect after detecting a write failure to director If disconnection is detected during write failure, or "Output buffer full" occurs, the connection is disconnected. However, if this was the right side connection, it wasn't automatically reconnected to. This left the ring nonworking. --- diff --git a/src/director/director-connection.c b/src/director/director-connection.c index 9a64bf25f6..fa530aff3a 100644 --- a/src/director/director-connection.c +++ b/src/director/director-connection.c @@ -2305,7 +2305,11 @@ static void director_connection_reconnect(struct director_connection **_conn, static void director_disconnect_write_error(struct director_connection *conn) { + struct director *dir = conn->dir; + director_connection_deinit(&conn, "write failure"); + if (dir->right == NULL) + director_connect(dir, "Reconnecting after write failure"); } void director_connection_send(struct director_connection *conn,