dovecot-2.2: doveadm-server: Error message logging improvements.

dovecot at dovecot.org dovecot at dovecot.org
Tue Aug 6 17:06:57 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/e52284d3cc76
changeset: 16672:e52284d3cc76
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Aug 06 17:06:50 2013 +0300
description:
doveadm-server: Error message logging improvements.

diffstat:

 src/doveadm/client-connection.c   |  17 ++++++++++++++++-
 src/doveadm/doveadm-mail-server.c |   4 ++--
 2 files changed, 18 insertions(+), 3 deletions(-)

diffs (49 lines):

diff -r 6c4917396b0d -r e52284d3cc76 src/doveadm/client-connection.c
--- a/src/doveadm/client-connection.c	Tue Aug 06 16:54:33 2013 +0300
+++ b/src/doveadm/client-connection.c	Tue Aug 06 17:06:50 2013 +0300
@@ -281,6 +281,19 @@
 	return 1;
 }
 
+static void client_log_disconnect_error(struct client_connection *conn)
+{
+	const char *error;
+
+	error = conn->ssl_iostream == NULL ? NULL :
+		ssl_iostream_get_last_error(conn->ssl_iostream);
+	if (error == NULL) {
+		error = conn->input->stream_errno == 0 ? "EOF" :
+			strerror(conn->input->stream_errno);
+	}
+	i_error("doveadm client disconnected before handshake: %s", error);
+}
+
 static void client_connection_input(struct client_connection *conn)
 {
 	const char *line;
@@ -289,8 +302,10 @@
 
 	if (!conn->handshaked) {
 		if ((line = i_stream_read_next_line(conn->input)) == NULL) {
-			if (conn->input->eof || conn->input->stream_errno != 0)
+			if (conn->input->eof || conn->input->stream_errno != 0) {
+				client_log_disconnect_error(conn);
 				client_connection_destroy(&conn);
+			}
 			return;
 		}
 
diff -r 6c4917396b0d -r e52284d3cc76 src/doveadm/doveadm-mail-server.c
--- a/src/doveadm/doveadm-mail-server.c	Tue Aug 06 16:54:33 2013 +0300
+++ b/src/doveadm/doveadm-mail-server.c	Tue Aug 06 17:06:50 2013 +0300
@@ -96,8 +96,8 @@
 	case 0:
 		break;
 	case SERVER_EXIT_CODE_DISCONNECTED:
-		i_error("%s: Internal failure for %s: %s",
-			server->name, username, error);
+		i_error("%s: Command %s failed for %s: %s",
+			server->name, cmd_ctx->cmd->name, username, error);
 		internal_failure = TRUE;
 		master_service_stop(master_service);
 		return;


More information about the dovecot-cvs mailing list