Mercurial > dovecot > original-hg > dovecot-2.1
changeset 14984:a34c9e40d473
director: Log director disconnection errno correctly.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 29 Jul 2013 22:10:01 +0300 |
parents | df041f75b6da |
children | 966a9ee85d58 |
files | src/director/director-connection.c |
diffstat | 1 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-connection.c Mon Jul 29 22:08:26 2013 +0300 +++ b/src/director/director-connection.c Mon Jul 29 22:10:01 2013 +0300 @@ -124,7 +124,8 @@ static void director_connection_disconnected(struct director_connection **conn); static void director_connection_reconnect(struct director_connection **conn, const char *reason); -static void director_connection_log_disconnect(struct director_connection *conn); +static void +director_connection_log_disconnect(struct director_connection *conn, int err); static void ATTR_FORMAT(2, 3) director_cmd_error(struct director_connection *conn, const char *fmt, ...) @@ -175,7 +176,7 @@ static void director_connection_wait_timeout(struct director_connection *conn) { - director_connection_log_disconnect(conn); + director_connection_log_disconnect(conn, ETIMEDOUT); director_connection_deinit(&conn, "Timeout waiting for disconnect after CONNECT"); } @@ -1271,7 +1272,7 @@ } static void -director_connection_log_disconnect(struct director_connection *conn) +director_connection_log_disconnect(struct director_connection *conn, int err) { unsigned int secs = ioloop_time - conn->created; string_t *str = t_str_new(128); @@ -1287,8 +1288,10 @@ str_printfa(str, "Director %s disconnected: ", conn->name); str_append(str, "Connection closed"); - if (errno != 0 && errno != EPIPE) + if (err != 0 && err != EPIPE) { + errno = err; str_printfa(str, ": %m"); + } str_printfa(str, " (connected %u secs, " "in=%"PRIuUOFF_T" out=%"PRIuUOFF_T, @@ -1312,7 +1315,7 @@ return; case -1: /* disconnected */ - director_connection_log_disconnect(conn); + director_connection_log_disconnect(conn, conn->input->stream_errno); director_connection_disconnected(&conn); return; case -2: