From 75e46142d8fbac811df8f2ca58d9a2f48a75d65f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 12 Aug 2010 15:20:58 +0100 Subject: [PATCH] login proxy: Error message improvements. --- src/login-common/client-common-auth.c | 13 ++++++++++++- src/login-common/login-proxy.c | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) 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; } -- 2.47.3