dovecot-2.2: director: Log director disconnection errno correctly.
dovecot at dovecot.org
dovecot at dovecot.org
Mon Jul 29 22:19:17 EEST 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/0ad8da149774
changeset: 16618:0ad8da149774
user: Timo Sirainen <tss at iki.fi>
date: Mon Jul 29 22:10:01 2013 +0300
description:
director: Log director disconnection errno correctly.
diffstat:
src/director/director-connection.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diffs (52 lines):
diff -r 0e0eb964685a -r 0ad8da149774 src/director/director-connection.c
--- 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:
More information about the dovecot-cvs
mailing list