changeset 21722:5571a8162b42

*-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.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 09 Mar 2017 10:31:39 -0500
parents f149ee35322e
children de665befcc92
files src/imap-urlauth/imap-urlauth-login.c src/login-common/client-common-auth.c src/login-common/client-common.c src/login-common/client-common.h src/login-common/login-proxy.c src/pop3-login/client.c
diffstat 6 files changed, 20 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- 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 = {
--- 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);
--- 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.";
--- 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);
--- 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));
--- 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 = {