diff src/doveadm/dsync/dsync-ibc-stream.c @ 16673:64464646c020

dsync: Stream disconnection error message improvement
author Timo Sirainen <tss@iki.fi>
date Tue, 06 Aug 2013 17:16:58 +0300
parents 960f827b7579
children 044ec0204873
line wrap: on
line diff
--- a/src/doveadm/dsync/dsync-ibc-stream.c	Tue Aug 06 17:06:50 2013 +0300
+++ b/src/doveadm/dsync/dsync-ibc-stream.c	Tue Aug 06 17:16:58 2013 +0300
@@ -357,6 +357,7 @@
 static int dsync_ibc_stream_next_line(struct dsync_ibc_stream *ibc,
 				      const char **line_r)
 {
+	string_t *error;
 	const char *line;
 
 	line = i_stream_next_line(ibc->input);
@@ -368,13 +369,19 @@
 	if (i_stream_read(ibc->input) == -1) {
 		if (ibc->stopped)
 			return -1;
+		error = t_str_new(128);
 		if (ibc->input->stream_errno != 0) {
 			errno = ibc->input->stream_errno;
-			i_error("read(%s) failed: %m", ibc->name);
+			str_printfa(error, "read(%s) failed: %m", ibc->name);
 		} else {
 			i_assert(ibc->input->eof);
-			i_error("read(%s) failed: EOF", ibc->name);
+			str_printfa(error, "read(%s) failed: EOF", ibc->name);
 		}
+		if (!ibc->version_received)
+			str_append(error, " (version not received)");
+		else if (!ibc->handshake_received)
+			str_append(error, " (handshake not received)");
+		i_error("%s", str_c(error));
 		dsync_ibc_stream_stop(ibc);
 		return -1;
 	}