diff src/director/doveadm-connection.c @ 11894:06a7435b6f53

director: If doveadm connection disconnects before handshake, don't loop forever.
author Timo Sirainen <tss@iki.fi>
date Fri, 23 Jul 2010 18:05:26 +0100
parents 4138737f41e6
children 447bce266022
line wrap: on
line diff
--- a/src/director/doveadm-connection.c	Fri Jul 23 16:14:46 2010 +0100
+++ b/src/director/doveadm-connection.c	Fri Jul 23 18:05:26 2010 +0100
@@ -235,8 +235,11 @@
 	bool ret = TRUE;
 
 	if (!conn->handshaked) {
-		if ((line = i_stream_read_next_line(conn->input)) == NULL)
+		if ((line = i_stream_read_next_line(conn->input)) == NULL) {
+			if (conn->input->eof || conn->input->stream_errno != 0)
+				doveadm_connection_deinit(&conn);
 			return;
+		}
 
 		if (!version_string_verify(line, "director-doveadm",
 					   DOVEADM_PROTOCOL_VERSION_MAJOR)) {