*** ipopd/ipop3d.c Wed Oct 25 08:15:46 2000 --- ipopd.drac/ipop3d.c Sat Dec 16 00:16:56 2000 *************** *** 34,39 **** --- 34,40 ---- #include #include #include "c-client.h" + #include /* Autologout timer */ *************** *** 92,97 **** --- 93,99 ---- int mbxopen (char *mailbox); long blat (char *text,long lines,unsigned long size); void rset (); + void drac(); /* Main program */ *************** *** 230,239 **** tcp_clienthost ()); } else if ((state = mbxopen ("INBOX")) == TRANSACTION) ! syslog (LOG_INFO,"Auth user=%.80s host=%.80s nmsgs=%ld/%ld", ! user,tcp_clienthost (),nmsgs,stream->nmsgs); ! else syslog (LOG_INFO,"Auth user=%.80s host=%.80s no mailbox", ! user,tcp_clienthost ()); } else { AUTHENTICATOR *auth = mail_lookup_auth (1); --- 232,241 ---- tcp_clienthost ()); } else if ((state = mbxopen ("INBOX")) == TRANSACTION) ! {syslog (LOG_INFO,"Auth user=%.80s host=%.80s nmsgs=%ld/%ld", ! user,tcp_clienthost (),nmsgs,stream->nmsgs); drac();} ! else {syslog (LOG_INFO,"Auth user=%.80s host=%.80s no mailbox", ! user,tcp_clienthost ()); drac();} } else { AUTHENTICATOR *auth = mail_lookup_auth (1); *************** *** 265,274 **** else if (!(user = apop_login (challenge,s,t,argc,argv))) PSOUT ("-ERR Bad APOP\015\012"); else if ((state = mbxopen ("INBOX")) == TRANSACTION) ! syslog (LOG_INFO,"APOP user=%.80s host=%.80s nmsgs=%ld/%ld", ! user,tcp_clienthost (),nmsgs,stream->nmsgs); ! else syslog (LOG_INFO,"APOP user=%.80s host=%.80s no mailbox", ! user,tcp_clienthost ()); } else PSOUT ("-ERR Not supported\015\012"); } --- 267,276 ---- else if (!(user = apop_login (challenge,s,t,argc,argv))) PSOUT ("-ERR Bad APOP\015\012"); else if ((state = mbxopen ("INBOX")) == TRANSACTION) ! {syslog (LOG_INFO,"APOP user=%.80s host=%.80s nmsgs=%ld/%ld", ! user,tcp_clienthost (),nmsgs,stream->nmsgs); drac();} ! else {syslog (LOG_INFO,"APOP user=%.80s host=%.80s no mailbox", ! user,tcp_clienthost ()); drac();} } else PSOUT ("-ERR Not supported\015\012"); } *************** *** 578,583 **** --- 580,586 ---- t ? "Admin " : "",user,tcp_clienthost (),nmsgs,stream->nmsgs); else syslog (LOG_INFO,"%sLogin user=%.80s host=%.80s no mailbox", t ? "Admin " : "",user,tcp_clienthost ()); + drac(); return ret; } } *************** *** 595,600 **** --- 598,614 ---- /* vague error message to confuse crackers */ PSOUT ("-ERR Bad login\015\012"); return AUTHORIZATION; + } + + void drac() { + char *err,*ip; + struct sockaddr_in sin; + int rc,len; + + len = sizeof(struct sockaddr_in); + ip = getpeername(0,&sin,&len) ? "UNKNOWN" : inet_ntoa(sin.sin_addr); + rc = dracauth("localhost",inet_addr(ip),&err); + if(rc) syslog(LOG_INFO,"drac_err %s",err); } /* Authentication responder