changeset 22666:0b8c69533353

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.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 16 Nov 2017 00:44:17 +0200
parents 2cd3df7171e1
children 6b14fe31f657
files src/director/director-connection.c
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/director-connection.c	Thu Sep 21 00:38:33 2017 +0200
+++ b/src/director/director-connection.c	Thu Nov 16 00:44:17 2017 +0200
@@ -2312,7 +2312,11 @@
 
 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,