Download | Plain Text | No Line Numbers


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6.  
  7. #ifdef LOG_SYSLOG
  8. # include <syslog.h>
  9. #endif
  10.  
  11. int main()
  12. {
  13. char *user = getenv("SMTPAUTHUSER");
  14. char *meth, *rip, *smtps, *tls, *session, *p;
  15. pid_t ppid = getppid();
  16.  
  17. if (user != NULL && strlen(user) > 0)
  18. {
  19. meth = getenv("SMTPAUTHMETHOD");
  20. rip = getenv("TCPREMOTEIP");
  21. smtps = getenv("SMTPS");
  22. tls = getenv("SMTPSECURED");
  23. session = getenv("SMTPSESSION");
  24.  
  25. if (meth != NULL)
  26. {
  27. meth = strdup(meth);
  28. for(p = meth; (*p = toupper(*p)); p++);
  29. }
  30.  
  31. fprintf(stderr, "smtp-login: Login: user=<%s>, method=%s, rip=%s, pid=%d%s, session=<%s>\n",
  32. user, meth, rip, ppid, (tls) ? ((smtps) ? ", SSL" : ", TLS") : "", session);
  33.  
  34. #ifdef LOG_SYSLOG
  35. openlog("smtp", LOG_NDELAY, LOG_MAIL);
  36. syslog(LOG_INFO, "smtp-login: Login: user=<%s>, method=%s, rip=%s, pid=%d%s, session=<%s>",
  37. user, meth, rip, ppid, (tls) ? ((smtps) ? ", SSL" : ", TLS") : "", session);
  38. closelog();
  39. #endif
  40.  
  41. if (meth != NULL)
  42. free(meth);
  43. }
  44. return 0;
  45. }
  46.