# $Id: popa3d-logging.diff,v 1.3 2005/05/25 15:33:05 jcs Exp $ # # remove some chatty logging from popa3d and make authentication lines include # the ip from where they came, suitable for reading by a pop-before-smtp # daemon (such as http://jcs.org/code/popa3d-pbs.pl) # # by joshua stein # Index: pop_auth.c =================================================================== RCS file: /cvs/src/usr.sbin/popa3d/pop_auth.c,v retrieving revision 1.3 diff -u -r1.3 pop_auth.c --- pop_auth.c 12 May 2003 19:28:22 -0000 1.3 +++ pop_auth.c 17 Feb 2004 04:32:10 -0000 @@ -67,7 +67,7 @@ return 0; } -void log_pop_auth(int result, char *user) +void log_pop_auth(int result, char *user, char *remaddr) { if (result == AUTH_NONE) { syslog(SYSLOG_PRI_LO, "Didn't attempt authentication"); @@ -85,7 +85,7 @@ } #endif syslog(result == AUTH_OK ? SYSLOG_PRI_LO : SYSLOG_PRI_HI, - "Authentication %s for %s", + "Authentication %s for %s [%s]", result == AUTH_OK ? "passed" : "failed", - user ? user : "UNKNOWN USER"); + user ? user : "UNKNOWN USER", remaddr); } Index: pop_auth.h =================================================================== RCS file: /cvs/src/usr.sbin/popa3d/pop_auth.h,v retrieving revision 1.2 diff -u -r1.2 pop_auth.h --- pop_auth.h 21 Sep 2001 20:22:06 -0000 1.2 +++ pop_auth.h 17 Feb 2004 04:32:10 -0000 @@ -23,6 +23,6 @@ /* * Logs an authentication attempt for user, use NULL for non-existent. */ -extern void log_pop_auth(int result, char *user); +extern void log_pop_auth(int result, char *user, char *remaddr); #endif Index: pop_root.c =================================================================== RCS file: /cvs/src/usr.sbin/popa3d/pop_root.c,v retrieving revision 1.3 diff -u -r1.3 pop_root.c --- pop_root.c 12 May 2003 19:28:22 -0000 1.3 +++ pop_root.c 17 Feb 2004 04:32:10 -0000 @@ -210,7 +210,7 @@ return 0; } -int do_pop_session(void) +int do_pop_session(char *remaddr) { int channel[2]; int result, status; @@ -247,12 +247,12 @@ if (result == AUTH_OK) { if (close(channel[0])) return log_error("close"); - log_pop_auth(result, user); + log_pop_auth(result, user, remaddr); return do_pop_trans(spool, mailbox); } if (drop_root()) return 1; - log_pop_auth(result, known ? user : NULL); + log_pop_auth(result, known ? user : NULL, remaddr); #ifdef AUTH_FAILED_MESSAGE if (result == AUTH_FAILED) pop_reply("-ERR %s", AUTH_FAILED_MESSAGE); Index: pop_trans.c =================================================================== RCS file: /cvs/src/usr.sbin/popa3d/pop_trans.c,v retrieving revision 1.4 diff -u -r1.4 pop_trans.c --- pop_trans.c 12 May 2003 19:28:22 -0000 1.4 +++ pop_trans.c 17 Feb 2004 04:32:10 -0000 @@ -218,9 +218,9 @@ return 0; } - syslog(SYSLOG_PRI_LO, "%u message%s (%lu byte%s) loaded", + /* syslog(SYSLOG_PRI_LO, "%u message%s (%lu byte%s) loaded", db.total_count, db.total_count == 1 ? "" : "s", - db.total_size, db.total_size == 1 ? "" : "s"); + db.total_size, db.total_size == 1 ? "" : "s"); */ if (pop_reply_ok()) event = POP_CRASH_NETFAIL; @@ -236,11 +236,11 @@ break; } - syslog(SYSLOG_PRI_LO, "%u (%lu) deleted, %u (%lu) left", + /* syslog(SYSLOG_PRI_LO, "%u (%lu) deleted, %u (%lu) left", db.total_count - db.visible_count, db.total_size - db.visible_size, db.visible_count, - db.visible_size); + db.visible_size); */ pop_reply_ok(); break; Index: standalone.c =================================================================== RCS file: /cvs/src/usr.sbin/popa3d/standalone.c,v retrieving revision 1.5 diff -u -r1.5 standalone.c --- standalone.c 12 May 2003 19:28:22 -0000 1.5 +++ standalone.c 17 Feb 2004 04:32:10 -0000 @@ -35,7 +35,7 @@ */ extern int log_error(char *s); extern int do_pop_startup(void); -extern int do_pop_session(void); +extern int do_pop_session(char *remaddr); typedef volatile sig_atomic_t va_int; @@ -234,13 +234,13 @@ #if DAEMON_LIBWRAP check_access(new); #endif - syslog(SYSLOG_PRI_LO, "Session from %s", - inet_ntoa(addr.sin_addr)); + /* syslog(SYSLOG_PRI_LO, "Session from %s", + inet_ntoa(addr.sin_addr)); */ if (dup2(new, 0) < 0) return log_error("dup2"); if (dup2(new, 1) < 0) return log_error("dup2"); if (dup2(new, 2) < 0) return log_error("dup2"); if (close(new)) return log_error("close"); - return do_pop_session(); + return do_pop_session(inet_ntoa(addr.sin_addr)); default: sessions[j].addr = addr.sin_addr;