changeset 8123:26b67708b365 HEAD

imap/pop3-proxy: If auth_verbose=yes, log proxy login failures.
author Timo Sirainen <tss@iki.fi>
date Sat, 30 Aug 2008 12:34:34 +0300
parents 3917bf9cf311
children 744f9dbff89c
files src/imap-login/imap-proxy.c src/pop3-login/pop3-proxy.c
diffstat 2 files changed, 40 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap-login/imap-proxy.c	Sat Aug 30 12:00:49 2008 +0300
+++ b/src/imap-login/imap-proxy.c	Sat Aug 30 12:34:34 2008 +0300
@@ -128,6 +128,26 @@
 		   be using only Dovecot as their backend :) */
 		client_send_tagline(client, line + 2);
 
+		if (verbose_auth) {
+			str = t_str_new(128);
+			str_printfa(str, "proxy(%s): Login failed to %s:%u",
+				    client->common.virtual_user,
+				    login_proxy_get_host(client->proxy),
+				    login_proxy_get_port(client->proxy));
+			if (strcmp(client->common.virtual_user,
+				   client->proxy_user) != 0) {
+				/* remote username is different, log it */
+				str_append_c(str, '/');
+				str_append(str, client->proxy_user);
+			}
+			str_append(str, ": ");
+			if (strncasecmp(line + 2, "NO ", 3) == 0)
+				str_append(str, line + 2 + 3);
+			else
+				str_append(str, line + 2);
+			i_info("%s", str_c(str));
+		}
+
 		/* allow client input again */
 		i_assert(client->io == NULL);
 		client->io = io_add(client->common.fd, IO_READ,
--- a/src/pop3-login/pop3-proxy.c	Sat Aug 30 12:00:49 2008 +0300
+++ b/src/pop3-login/pop3-proxy.c	Sat Aug 30 12:34:34 2008 +0300
@@ -132,6 +132,26 @@
 	else
 		client_send_line(client, line);
 
+	if (verbose_auth) {
+		str = t_str_new(128);
+		str_printfa(str, "proxy(%s): Login failed to %s:%u",
+			    client->common.virtual_user,
+			    login_proxy_get_host(client->proxy),
+			    login_proxy_get_port(client->proxy));
+		if (strcmp(client->common.virtual_user,
+			   client->proxy_user) != 0) {
+			/* remote username is different, log it */
+			str_append_c(str, '/');
+			str_append(str, client->proxy_user);
+		}
+		str_append(str, ": ");
+		if (strncmp(line, "-ERR ", 5) == 0)
+			str_append(str, line + 5);
+		else
+			str_append(str, line);
+		i_info("%s", str_c(str));
+	}
+
 	/* allow client input again */
 	i_assert(client->io == NULL);
 	client->io = io_add(client->common.fd, IO_READ,