From 6e8ad595d0603295f57bef576da8a3a00b55c5e2 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 30 Aug 2008 12:34:34 +0300 Subject: [PATCH] imap/pop3-proxy: If auth_verbose=yes, log proxy login failures. --HG-- branch : HEAD --- src/imap-login/imap-proxy.c | 20 ++++++++++++++++++++ src/pop3-login/pop3-proxy.c | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/imap-login/imap-proxy.c b/src/imap-login/imap-proxy.c index 104e38fd9e..2aa1d5a440 100644 --- a/src/imap-login/imap-proxy.c +++ b/src/imap-login/imap-proxy.c @@ -128,6 +128,26 @@ static int proxy_input_line(struct imap_client *client, 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, diff --git a/src/pop3-login/pop3-proxy.c b/src/pop3-login/pop3-proxy.c index 061cc31b83..6a9d730989 100644 --- a/src/pop3-login/pop3-proxy.c +++ b/src/pop3-login/pop3-proxy.c @@ -132,6 +132,26 @@ static void proxy_input(struct istream *input, struct ostream *output, 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, -- 2.47.3