Download | Plain Text | Line Numbers
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#ifdef LOG_SYSLOG
# include <syslog.h>
#endif
int main()
{
char *user = getenv("SMTPAUTHUSER");
char *meth, *rip, *smtps, *tls, *session, *p;
pid_t ppid = getppid();
if (user != NULL && strlen(user) > 0)
{
meth = getenv("SMTPAUTHMETHOD");
rip = getenv("TCPREMOTEIP");
smtps = getenv("SMTPS");
tls = getenv("SMTPSECURED");
session = getenv("SMTPSESSION");
if (meth != NULL)
{
meth = strdup(meth);
for(p = meth; (*p = toupper(*p)); p++);
}
fprintf(stderr, "smtp-login: Login: user=<%s>, method=%s, rip=%s, pid=%d%s, session=<%s>\n",
user, meth, rip, ppid, (tls) ? ((smtps) ? ", SSL" : ", TLS") : "", session);
#ifdef LOG_SYSLOG
openlog("smtp", LOG_NDELAY, LOG_MAIL);
syslog(LOG_INFO, "smtp-login: Login: user=<%s>, method=%s, rip=%s, pid=%d%s, session=<%s>",
user, meth, rip, ppid, (tls) ? ((smtps) ? ", SSL" : ", TLS") : "", session);
closelog();
#endif
if (meth != NULL)
free(meth);
}
return 0;
}