/* 

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