FWIW, SIGBREAK on Windows should only be ignored when running as a Service.

This commit is contained in:
Howard Chu 2007-01-02 10:10:16 +00:00
parent 68a0e0d922
commit 1f79382c4f

View File

@ -43,6 +43,7 @@
#include "slurp.h"
#include "globals.h"
#include "lutil.h"
/*
@ -77,8 +78,8 @@ fm(
#ifdef SIGHUP
(void) SIGNAL( SIGHUP, slurp_set_shutdown );
#endif
#if defined(SIGBREAK) && defined(HAVE_NT_SERVICE_MANAGER)
(void) SIGNAL( SIGBREAK, do_nothing );
#if defined(SIGBREAK)
(void) SIGNAL( SIGBREAK, slurp_set_shutdown );
#endif
if ( sglob->one_shot_mode ) {
@ -165,8 +166,15 @@ fm(
RETSIGTYPE
slurp_set_shutdown(int sig)
{
#if HAVE_NT_SERVICE_MANAGER && SIGBREAK
if (is_NT_Service && sig == SIGBREAK) {
/* empty */;
} else
#endif
{
sglob->slurpd_shutdown = 1; /* set flag */
tcp_write( sglob->wake_sds[1], "0", 1); /* wake up file mgr */
}
(void) SIGNAL_REINSTALL( sig, slurp_set_shutdown ); /* reinstall handlers */
}