test servers: handle W32/W64 SIGBREAK with exit_signal_handler
This commit is contained in:
Родитель
a6848250d2
Коммит
308cce8231
|
@ -228,6 +228,10 @@ static SIGHANDLER_T old_sigint_handler = SIG_ERR;
|
|||
static SIGHANDLER_T old_sigterm_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
static SIGHANDLER_T old_sigbreak_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
/* var which if set indicates that the program should finish execution */
|
||||
|
||||
SIG_ATOMIC_T got_exit_signal = 0;
|
||||
|
@ -283,6 +287,13 @@ static void install_signal_handlers(void)
|
|||
else
|
||||
siginterrupt(SIGTERM, 1);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
/* handle SIGBREAK signal with our exit_signal_handler */
|
||||
if((old_sigbreak_handler = signal(SIGBREAK, exit_signal_handler)) == SIG_ERR)
|
||||
logmsg("cannot install SIGBREAK handler: %s", strerror(errno));
|
||||
else
|
||||
siginterrupt(SIGBREAK, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void restore_signal_handlers(void)
|
||||
|
@ -307,6 +318,10 @@ static void restore_signal_handlers(void)
|
|||
if(SIG_ERR != old_sigterm_handler)
|
||||
(void)signal(SIGTERM, old_sigterm_handler);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
if(SIG_ERR != old_sigbreak_handler)
|
||||
(void)signal(SIGBREAK, old_sigbreak_handler);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int ProcessRequest(struct httprequest *req)
|
||||
|
|
|
@ -174,6 +174,10 @@ static SIGHANDLER_T old_sigint_handler = SIG_ERR;
|
|||
static SIGHANDLER_T old_sigterm_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
static SIGHANDLER_T old_sigbreak_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
/* var which if set indicates that the program should finish execution */
|
||||
|
||||
SIG_ATOMIC_T got_exit_signal = 0;
|
||||
|
@ -229,6 +233,13 @@ static void install_signal_handlers(void)
|
|||
else
|
||||
siginterrupt(SIGTERM, 1);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
/* handle SIGBREAK signal with our exit_signal_handler */
|
||||
if((old_sigbreak_handler = signal(SIGBREAK, exit_signal_handler)) == SIG_ERR)
|
||||
logmsg("cannot install SIGBREAK handler: %s", strerror(errno));
|
||||
else
|
||||
siginterrupt(SIGBREAK, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void restore_signal_handlers(void)
|
||||
|
@ -253,6 +264,10 @@ static void restore_signal_handlers(void)
|
|||
if(SIG_ERR != old_sigterm_handler)
|
||||
(void)signal(SIGTERM, old_sigterm_handler);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
if(SIG_ERR != old_sigbreak_handler)
|
||||
(void)signal(SIGBREAK, old_sigbreak_handler);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -233,6 +233,10 @@ static SIGHANDLER_T old_sigint_handler = SIG_ERR;
|
|||
static SIGHANDLER_T old_sigterm_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
static SIGHANDLER_T old_sigbreak_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
/* var which if set indicates that the program should finish execution */
|
||||
|
||||
SIG_ATOMIC_T got_exit_signal = 0;
|
||||
|
@ -288,6 +292,13 @@ static void install_signal_handlers(void)
|
|||
else
|
||||
siginterrupt(SIGTERM, 1);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
/* handle SIGBREAK signal with our exit_signal_handler */
|
||||
if((old_sigbreak_handler = signal(SIGBREAK, exit_signal_handler)) == SIG_ERR)
|
||||
logmsg("cannot install SIGBREAK handler: %s", strerror(errno));
|
||||
else
|
||||
siginterrupt(SIGBREAK, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void restore_signal_handlers(void)
|
||||
|
@ -312,6 +323,10 @@ static void restore_signal_handlers(void)
|
|||
if(SIG_ERR != old_sigterm_handler)
|
||||
(void)signal(SIGTERM, old_sigterm_handler);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
if(SIG_ERR != old_sigbreak_handler)
|
||||
(void)signal(SIGBREAK, old_sigbreak_handler);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* based on the testno, parse the correct server commands */
|
||||
|
|
|
@ -252,6 +252,10 @@ static SIGHANDLER_T old_sigint_handler = SIG_ERR;
|
|||
static SIGHANDLER_T old_sigterm_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
static SIGHANDLER_T old_sigbreak_handler = SIG_ERR;
|
||||
#endif
|
||||
|
||||
/* var which if set indicates that the program should finish execution */
|
||||
|
||||
SIG_ATOMIC_T got_exit_signal = 0;
|
||||
|
@ -400,6 +404,13 @@ static void install_signal_handlers(void)
|
|||
else
|
||||
siginterrupt(SIGTERM, 1);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
/* handle SIGBREAK signal with our exit_signal_handler */
|
||||
if((old_sigbreak_handler = signal(SIGBREAK, exit_signal_handler)) == SIG_ERR)
|
||||
logmsg("cannot install SIGBREAK handler: %s", strerror(errno));
|
||||
else
|
||||
siginterrupt(SIGBREAK, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void restore_signal_handlers(void)
|
||||
|
@ -420,6 +431,10 @@ static void restore_signal_handlers(void)
|
|||
if(SIG_ERR != old_sigterm_handler)
|
||||
(void)signal(SIGTERM, old_sigterm_handler);
|
||||
#endif
|
||||
#if defined(SIGBREAK) && defined(WIN32)
|
||||
if(SIG_ERR != old_sigbreak_handler)
|
||||
(void)signal(SIGBREAK, old_sigbreak_handler);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче