/*
passlogd - passive syslog capture daemon
copyright (c) 2005 - christian void <cvoid@morphine.com>
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;
}
}
syntax highlighted by Code2HTML, v. 0.9.1