dovecot-1.2: Proxy: Log destuser in the "proxying" line if it's ...

dovecot at dovecot.org dovecot at dovecot.org
Thu Aug 14 10:11:02 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/4d6cc7bb3426
changeset: 8097:4d6cc7bb3426
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Aug 14 03:10:34 2008 -0400
description:
Proxy: Log destuser in the "proxying" line if it's different from username.

diffstat:

2 files changed, 25 insertions(+), 12 deletions(-)
src/imap-login/imap-proxy.c |   18 ++++++++++++------
src/pop3-login/pop3-proxy.c |   19 +++++++++++++------

diffs (85 lines):

diff -r f35a8a3dc06d -r 4d6cc7bb3426 src/imap-login/imap-proxy.c
--- a/src/imap-login/imap-proxy.c	Wed Aug 13 18:08:45 2008 -0400
+++ b/src/imap-login/imap-proxy.c	Thu Aug 14 03:10:34 2008 -0400
@@ -50,7 +50,6 @@ static int proxy_input_line(struct imap_
 			    struct ostream *output, const char *line)
 {
 	string_t *str;
-	const char *msg;
 
 	i_assert(!client->destroyed);
 
@@ -91,10 +90,17 @@ static int proxy_input_line(struct imap_
 		(void)o_stream_send(client->output,
 				    str_data(str), str_len(str));
 
-		msg = t_strdup_printf("proxy(%s): started proxying to %s:%u",
-				      client->common.virtual_user,
-				      login_proxy_get_host(client->proxy),
-				      login_proxy_get_port(client->proxy));
+		str_truncate(str, 0);
+		str_printfa(str, "proxy(%s): started proxying 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);
+		}
 
 		(void)client_skip_line(client);
 		login_proxy_detach(client->proxy, client->common.input,
@@ -104,7 +110,7 @@ static int proxy_input_line(struct imap_
 		client->common.input = NULL;
 		client->output = NULL;
 		client->common.fd = -1;
-		client_destroy_success(client, msg);
+		client_destroy_success(client, str_c(str));
 		return -1;
 	} else if (strncmp(line, "P ", 2) == 0) {
 		/* If the backend server isn't Dovecot, the error message may
diff -r f35a8a3dc06d -r 4d6cc7bb3426 src/pop3-login/pop3-proxy.c
--- a/src/pop3-login/pop3-proxy.c	Wed Aug 13 18:08:45 2008 -0400
+++ b/src/pop3-login/pop3-proxy.c	Thu Aug 14 03:10:34 2008 -0400
@@ -15,7 +15,7 @@ static void proxy_input(struct istream *
 			struct pop3_client *client)
 {
 	string_t *str;
-	const char *line, *msg;
+	const char *line;
 
 	if (input == NULL) {
 		if (client->io != NULL) {
@@ -102,10 +102,17 @@ static void proxy_input(struct istream *
 		line = t_strconcat(line, "\r\n", NULL);
 		(void)o_stream_send_str(client->output, line);
 
-		msg = t_strdup_printf("proxy(%s): started proxying to %s:%u",
-				      client->common.virtual_user,
-				      login_proxy_get_host(client->proxy),
-				      login_proxy_get_port(client->proxy));
+		str = t_str_new(128);
+		str_printfa(str, "proxy(%s): started proxying 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);
+		}
 
 		login_proxy_detach(client->proxy, client->common.input,
 				   client->output);
@@ -114,7 +121,7 @@ static void proxy_input(struct istream *
 		client->common.input = NULL;
 		client->output = NULL;
 		client->common.fd = -1;
-		client_destroy_success(client, msg);
+		client_destroy_success(client, str_c(str));
 		return;
 	}
 


More information about the dovecot-cvs mailing list