*** src/elogd.c-orig 2009-04-14 04:16:02.000000000 -0400 --- src/elogd.c 2009-06-04 11:33:31.337804000 -0400 *************** *** 27553,27558 **** --- 27553,27565 ---- SSL_CTX *ssl_ctx; #endif + /* + * sigaction structs + */ + struct sigaction ctrlc_handle; + struct sigaction ignore_handle; + struct sigaction hup_handle; + i_conn = content_length = 0; net_buffer_size = 100000; net_buffer = xmalloc(net_buffer_size); *************** *** 27708,27718 **** close(fd); } ! /* install signal handler */ ! signal(SIGTERM, ctrlc_handler); ! signal(SIGINT, ctrlc_handler); ! signal(SIGPIPE, SIG_IGN); ! signal(SIGHUP, hup_handler); /* give up root privilege */ if (geteuid() == 0) { if (!getcfg("global", "Grp", str, sizeof(str)) || setegroup(str) < 0) { --- 27715,27739 ---- close(fd); } ! /* ! * install signal handlers ! */ ! ctrlc_handle.sa_handler = ctrlc_handler; ! sigemptyset( &ctrlc_handle.sa_mask ); ! ctrlc_handle.sa_flags = 0; ! ! sigaction(SIGTERM, &ctrlc_handle, NULL); ! sigaction(SIGINT, &ctrlc_handle, NULL); ! ! ignore_handle.sa_handler = SIG_IGN; ! sigaction(SIGPIPE, &ignore_handle, NULL); ! ! hup_handle.sa_handler = hup_handler; ! sigemptyset( &hup_handle.sa_mask ); ! hup_handle.sa_flags = 0; ! sigaction(SIGHUP, &hup_handle, NULL); ! ! /* give up root privilege */ if (geteuid() == 0) { if (!getcfg("global", "Grp", str, sizeof(str)) || setegroup(str) < 0) {