diff options
| author | Sam Varshavchik | 2014-05-06 08:25:17 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2014-05-06 08:25:17 -0400 |
| commit | d71f458fcd1291348b1ecaa7dce1e06b2b26f761 (patch) | |
| tree | 764be0846cb06067704276382569e8b11bbc8617 | |
| parent | 2fe3d6733aa72133bc7068a02c2d16d08fc6006c (diff) | |
| download | courier-libs-d71f458fcd1291348b1ecaa7dce1e06b2b26f761.tar.bz2 | |
courier-imap: log IMAP and POP3 logins when running in proxy mode.
| -rw-r--r-- | imap/ChangeLog | 6 | ||||
| -rw-r--r-- | imap/imaplogin.c | 16 | ||||
| -rw-r--r-- | imap/pop3login.c | 15 |
3 files changed, 35 insertions, 2 deletions
diff --git a/imap/ChangeLog b/imap/ChangeLog index b568ad4..79b0c1b 100644 --- a/imap/ChangeLog +++ b/imap/ChangeLog @@ -1,3 +1,9 @@ +2014-05-06 Sam Varshavchik <mrsam@courier-mta.com> + + * pop3login.c (login_callback): Log logins when running in proxy mode. + + * imaplogin.c (login_callback): Log logins when running in proxy mode. + 2014-04-27 Sam Varshavchik <mrsam@courier-mta.com> * courier.spec.in: Update to use systemd macros. diff --git a/imap/imaplogin.c b/imap/imaplogin.c index 0a46783..7038b42 100644 --- a/imap/imaplogin.c +++ b/imap/imaplogin.c @@ -1,5 +1,5 @@ /* -** Copyright 1998 - 2011 Double Precision, Inc. +** Copyright 1998 - 2014 Double Precision, Inc. ** See COPYING for distribution information. */ @@ -140,6 +140,14 @@ struct imapproxyinfo { static int login_imap(int, const char *, void *); +static const char *safe_getenv(const char *p) +{ + p=getenv(p); + + if (!p) p=""; + return p; +} + int login_callback(struct authinfo *ainfo, void *dummy) { int rc; @@ -196,6 +204,12 @@ int login_callback(struct authinfo *ainfo, void *dummy) if (fd > 0) { alarm(0); + + fprintf(stderr, "INFO: LOGIN, user=%s, ip=[%s], port=[%s], protocol=%s", + ainfo->address, safe_getenv("TCPREMOTEIP"), + safe_getenv("TCPREMOTEPORT"), + safe_getenv("PROTOCOL")); + proxyloop(fd); exit(0); } diff --git a/imap/pop3login.c b/imap/pop3login.c index 4bc291b..1a96a04 100644 --- a/imap/pop3login.c +++ b/imap/pop3login.c @@ -1,5 +1,5 @@ /* -** Copyright 1998 - 2008 Double Precision, Inc. +** Copyright 1998 - 2014 Double Precision, Inc. ** See COPYING for distribution information. */ @@ -38,6 +38,14 @@ extern const char *pop3_externalauth(); static const char *pop3d; static const char *defaultmaildir; +static const char *safe_getenv(const char *p) +{ + p=getenv(p); + + if (!p) p=""; + return p; +} + static int starttls() { char *argvec[4]; @@ -180,6 +188,11 @@ static int login_callback(struct authinfo *ainfo, void *dummy) if (fd > 0) { alarm(0); + fprintf(stderr, "INFO: LOGIN, user=%s, ip=[%s], port=[%s], protocol=%s", + ainfo->address, safe_getenv("TCPREMOTEIP"), + safe_getenv("TCPREMOTEPORT"), + safe_getenv("PROTOCOL")); + proxyloop(fd); exit(0); } |
