From: Timo Sirainen Date: Tue, 6 Aug 2013 14:06:50 +0000 (+0300) Subject: doveadm-server: Error message logging improvements. X-Git-Tag: 2.2.6~152 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ecd14e4323bfe9953db9be89dc75858592018a75;p=thirdparty%2Fdovecot%2Fcore.git doveadm-server: Error message logging improvements. --- diff --git a/src/doveadm/client-connection.c b/src/doveadm/client-connection.c index e740abc53a..1008a5f109 100644 --- a/src/doveadm/client-connection.c +++ b/src/doveadm/client-connection.c @@ -281,6 +281,19 @@ client_connection_authenticate(struct client_connection *conn) 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 @@ static void client_connection_input(struct client_connection *conn) 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 --git a/src/doveadm/doveadm-mail-server.c b/src/doveadm/doveadm-mail-server.c index dab66666b3..828a53580d 100644 --- a/src/doveadm/doveadm-mail-server.c +++ b/src/doveadm/doveadm-mail-server.c @@ -96,8 +96,8 @@ static void doveadm_cmd_callback(int exit_code, const char *error, 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;