# HG changeset patch # User Timo Sirainen # Date 1489073499 18000 # Node ID 5571a8162b4276111ed63f4acf641c8ef957b7af # Parent f149ee35322e45d22d878b9d3c77ad91bd756ca3 *-login: Add client.proxy_get_state() for providing human-readable proxy state If not implemented, it defaults to the old method of returning proxy_state number. diff -r f149ee35322e -r 5571a8162b42 src/imap-urlauth/imap-urlauth-login.c --- a/src/imap-urlauth/imap-urlauth-login.c Tue Mar 07 14:36:45 2017 -0500 +++ b/src/imap-urlauth/imap-urlauth-login.c Thu Mar 09 10:31:39 2017 -0500 @@ -172,7 +172,8 @@ imap_urlauth_client_auth_result, NULL, NULL, - NULL + NULL, + NULL, }; static const struct login_binary imap_urlauth_login_binary = { diff -r f149ee35322e -r 5571a8162b42 src/login-common/client-common-auth.c --- a/src/login-common/client-common-auth.c Tue Mar 07 14:36:45 2017 -0500 +++ b/src/login-common/client-common-auth.c Thu Mar 09 10:31:39 2017 -0500 @@ -239,6 +239,14 @@ client->v.proxy_error(client, text); } +const char *client_proxy_get_state(struct client *client) +{ + if (client->v.proxy_get_state == NULL) + return dec2str(client->proxy_state); + else + return client->v.proxy_get_state(client); +} + void client_proxy_log_failure(struct client *client, const char *line) { string_t *str = t_str_new(128); @@ -312,11 +320,11 @@ duration = ioloop_time - client->created; client_log_err(client, t_strdup_printf( "proxy: Remote %s:%u disconnected: %s " - "(state=%u, duration=%us)%s", + "(state=%s, duration=%us)%s", login_proxy_get_host(client->login_proxy), login_proxy_get_port(client->login_proxy), io_stream_get_disconnect_reason(input, NULL), - client->proxy_state, duration, + client_proxy_get_state(client), duration, line == NULL ? "" : t_strdup_printf( " - BUG: line not read: %s", line))); client_proxy_failed(client, TRUE); diff -r f149ee35322e -r 5571a8162b42 src/login-common/client-common.c --- a/src/login-common/client-common.c Tue Mar 07 14:36:45 2017 -0500 +++ b/src/login-common/client-common.c Thu Mar 09 10:31:39 2017 -0500 @@ -65,10 +65,10 @@ user_reason = "Timeout while finishing login."; destroy_reason = t_strdup_printf( "proxy: Logging in to %s:%u timed out " - "(state=%u, duration=%us)", + "(state=%s, duration=%us)", login_proxy_get_host(client->login_proxy), login_proxy_get_port(client->login_proxy), - client->proxy_state, secs); + client_proxy_get_state(client), secs); client_log_err(client, destroy_reason); } else { user_reason = "Disconnected for inactivity."; diff -r f149ee35322e -r 5571a8162b42 src/login-common/client-common.h --- a/src/login-common/client-common.h Tue Mar 07 14:36:45 2017 -0500 +++ b/src/login-common/client-common.h Thu Mar 09 10:31:39 2017 -0500 @@ -99,6 +99,7 @@ void (*proxy_reset)(struct client *client); int (*proxy_parse_line)(struct client *client, const char *line); void (*proxy_error)(struct client *client, const char *text); + const char *(*proxy_get_state)(struct client *client); }; struct client { @@ -252,6 +253,7 @@ void client_proxy_finish_destroy_client(struct client *client); void client_proxy_log_failure(struct client *client, const char *line); void client_proxy_failed(struct client *client, bool send_line); +const char *client_proxy_get_state(struct client *client); void clients_notify_auth_connected(void); void client_destroy_oldest(void); diff -r f149ee35322e -r 5571a8162b42 src/login-common/login-proxy.c --- a/src/login-common/login-proxy.c Tue Mar 07 14:36:45 2017 -0500 +++ b/src/login-common/login-proxy.c Thu Mar 09 10:31:39 2017 -0500 @@ -282,9 +282,9 @@ str_printfa(str, "connect(%s, %u) failed: %m", proxy->host, proxy->port); } else { - str_printfa(str, "Login for %s:%u timed out in state=%u", + str_printfa(str, "Login for %s:%u timed out in state=%s", proxy->host, proxy->port, - proxy->client->proxy_state); + client_proxy_get_state(proxy->client)); } str_printfa(str, " (after %u secs", (unsigned int)(ioloop_time - proxy->created.tv_sec)); diff -r f149ee35322e -r 5571a8162b42 src/pop3-login/client.c --- a/src/pop3-login/client.c Tue Mar 07 14:36:45 2017 -0500 +++ b/src/pop3-login/client.c Thu Mar 09 10:31:39 2017 -0500 @@ -311,7 +311,8 @@ pop3_client_auth_result, pop3_proxy_reset, pop3_proxy_parse_line, - pop3_proxy_error + pop3_proxy_error, + NULL, }; static const struct login_binary pop3_login_binary = {