/* passlogd - passive syslog capture daemon copyright (c) 2005 - christian void file: sig.c history: 07jun01 cvoid: added call to pcap_close(). 05jun01 cvoid: incorrect signal fixed (duh!). 05jun01 cvoid: created. */ #include "passlog.h" extern int logfd; extern int fflag; extern int debug; extern int vflag; extern pcap_t *pd; /* signal handler */ void sighandle(int signum) { switch (signum) { case SIGTERM: /* shutdown */ openlog("passlogd", 0, LOG_DAEMON); syslog(LOG_INFO, "received signal %d (SIGTERM)", SIGTERM); if(fflag){ syslog(LOG_INFO, "closing logfile..."); close(logfd); } pcap_close(pd); syslog(LOG_INFO, "exiting..."); closelog(); exit(0); /* not here */ break; default: /* miscellaneous signals - we shouldn't hit this */ if(debug){ openlog("passlogd", 0, LOG_DAEMON); syslog(LOG_DEBUG, "received signal %d", signum); if(vflag){ printf("received signal %d\n", signum); } closelog(); } break; } }