]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: If doveadm connection disconnects before handshake, don't loop forever.
authorTimo Sirainen <tss@iki.fi>
Fri, 23 Jul 2010 17:05:26 +0000 (18:05 +0100)
committerTimo Sirainen <tss@iki.fi>
Fri, 23 Jul 2010 17:05:26 +0000 (18:05 +0100)
src/director/doveadm-connection.c

index 8bc805844acc2be7e279350882036bcb5928396a..b875576f70af775dd73fdcf64e71eae3659bc260 100644 (file)
@@ -235,8 +235,11 @@ static void doveadm_connection_input(struct doveadm_connection *conn)
        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)) {