Mercurial > dovecot > core-2.2
changeset 22694:2cf68aa64129
director: Fix logging disconnection error reasons
The previous commit set errno=0, which weren't logged. If error string is
provided, it doesn't matter what the errno is set (as long as it's not 0),
so we'll just use EINVAL.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 28 Nov 2017 19:01:19 +0200 |
parents | a11fd794807e |
children | 338c32a16562 |
files | src/director/director-connection.c |
diffstat | 1 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-connection.c Tue Nov 28 15:06:27 2017 +0200 +++ b/src/director/director-connection.c Tue Nov 28 19:01:19 2017 +0200 @@ -2239,7 +2239,7 @@ ret = director_connection_send_users(conn); o_stream_uncork(conn->output); if (ret < 0) { - director_connection_log_disconnect(conn, 0, + director_connection_log_disconnect(conn, conn->output->stream_errno, o_stream_get_error(conn->output)); director_connection_disconnected(&conn, o_stream_get_error(conn->output)); @@ -2532,13 +2532,14 @@ ret = o_stream_send(conn->output, data, len); if (ret != (off_t)len) { if (ret < 0) { - director_connection_log_disconnect(conn, 0, t_strdup_printf( - "write() failed: %s", - o_stream_get_error(conn->output))); + director_connection_log_disconnect(conn, + conn->output->stream_errno, + t_strdup_printf("write() failed: %s", + o_stream_get_error(conn->output))); } else { - director_connection_log_disconnect(conn, 0, t_strdup_printf( - "Output buffer full at %zu", - o_stream_get_buffer_used_size(conn->output))); + director_connection_log_disconnect(conn, EINVAL, + t_strdup_printf("Output buffer full at %zu", + o_stream_get_buffer_used_size(conn->output))); } o_stream_close(conn->output); /* closing the stream when output buffer is full doesn't cause @@ -2565,7 +2566,7 @@ str_printfa(str, "Ping timed out in %u.%03u secs: ", diff/1000, diff%1000); director_ping_append_extra(conn, str, 0, (uintmax_t)-1); - director_connection_log_disconnect(conn, 0, str_c(str)); + director_connection_log_disconnect(conn, EINVAL, str_c(str)); director_connection_disconnected(&conn, "Ping timeout"); } @@ -2578,7 +2579,7 @@ "PONG reply not received in %u.%03u secs, " "although other input keeps coming", diff/1000, diff%1000); - director_connection_log_disconnect(conn, 0, errstr); + director_connection_log_disconnect(conn, EINVAL, errstr); director_connection_disconnected(&conn, "Pong timeout"); }