Skip to content

Commit

Permalink
director: Fix logging disconnection error reasons
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sirainen committed Nov 28, 2017
1 parent ff674d4 commit 904765b
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions src/director/director-connection.c
Expand Up @@ -2239,7 +2239,7 @@ static int director_connection_output(struct director_connection *conn)
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));
Expand Down Expand Up @@ -2532,13 +2532,14 @@ void director_connection_send(struct director_connection *conn,
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
Expand All @@ -2565,7 +2566,7 @@ director_connection_ping_idle_timeout(struct director_connection *conn)
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");
}

Expand All @@ -2578,7 +2579,7 @@ static void director_connection_pong_timeout(struct director_connection *conn)
"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");
}

Expand Down

0 comments on commit 904765b

Please sign in to comment.