From: Timo Sirainen Date: Thu, 12 Aug 2010 14:20:58 +0000 (+0100) Subject: login proxy: Error message improvements. X-Git-Tag: 2.0.rc6~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=75e46142d8fbac811df8f2ca58d9a2f48a75d65f;p=thirdparty%2Fdovecot%2Fcore.git login proxy: Error message improvements. --- diff --git a/src/login-common/client-common-auth.c b/src/login-common/client-common-auth.c index f692aeeb50..5bcc87db02 100644 --- a/src/login-common/client-common-auth.c +++ b/src/login-common/client-common-auth.c @@ -179,6 +179,13 @@ void client_proxy_failed(struct client *client, bool send_line) client_auth_failed(client); } +static const char *get_disconnect_reason(struct istream *input) +{ + errno = input->stream_errno; + return errno == 0 || errno == EPIPE ? "Connection closed" : + t_strdup_printf("Connection closed: %m"); +} + static void proxy_input(struct client *client) { struct istream *input; @@ -209,7 +216,11 @@ static void proxy_input(struct client *client) client_proxy_failed(client, TRUE); return; case -1: - client_log_err(client, "proxy: Remote disconnected"); + client_log_err(client, t_strdup_printf( + "proxy: Remote %s:%u disconnected: %s", + login_proxy_get_host(client->login_proxy), + login_proxy_get_port(client->login_proxy), + get_disconnect_reason(input))); client_proxy_failed(client, TRUE); return; } diff --git a/src/login-common/login-proxy.c b/src/login-common/login-proxy.c index 7fdf5db8e2..67307dd9f1 100644 --- a/src/login-common/login-proxy.c +++ b/src/login-common/login-proxy.c @@ -202,6 +202,8 @@ static int login_proxy_connect(struct login_proxy *proxy) if (timeval_cmp(&rec->last_failure, &rec->last_success) > 0 && rec->num_waiting_connections != 0) { /* the server is down. fail immediately */ + i_error("proxy(%s): Host %s:%u is down", + proxy->client->virtual_user, proxy->host, proxy->port); login_proxy_free(&proxy); return -1; }