Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8097:4d6cc7bb3426 HEAD
Proxy: Log destuser in the "proxying" line if it's different from username.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 14 Aug 2008 03:10:34 -0400 |
parents | f35a8a3dc06d |
children | 8f0111854933 |
files | src/imap-login/imap-proxy.c src/pop3-login/pop3-proxy.c |
diffstat | 2 files changed, 25 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ struct ostream *output, const char *line) { string_t *str; - const char *msg; i_assert(!client->destroyed); @@ -91,10 +90,17 @@ (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 @@ 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
--- 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 @@ 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 @@ 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 @@ client->common.input = NULL; client->output = NULL; client->common.fd = -1; - client_destroy_success(client, msg); + client_destroy_success(client, str_c(str)); return; }