From 93ea8df6276741badae5428d05a377496fac86b9 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 16 Jun 2026 03:07:58 +0200 Subject: [PATCH 1/6] servers: try reversing SA_RESTART option --- tests/server/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/server/util.c b/tests/server/util.c index 6041bc0c6d..f92a81fe17 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -565,7 +565,7 @@ static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, sa.sa_handler = handler; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, signum); - sa.sa_flags = restartable ? SA_RESTART : 0; + sa.sa_flags = restartable ? 0 : SA_RESTART; if(sigaction(signum, &sa, &oldsa)) return SIG_ERR; From 04a4be4272b712dee39b7ee2a77d2bb49e7df4ed Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 18 Jun 2026 15:55:18 +0200 Subject: [PATCH 2/6] rename option, change type to int --- tests/server/util.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/tests/server/util.c b/tests/server/util.c index f92a81fe17..841033db91 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -555,8 +555,7 @@ static DWORD WINAPI main_window_loop(void *lpParameter) } #endif -static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, - bool restartable) +static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, int norestart) { #if defined(HAVE_SIGACTION) && defined(SA_RESTART) struct sigaction sa, oldsa; @@ -565,7 +564,7 @@ static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, sa.sa_handler = handler; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, signum); - sa.sa_flags = restartable ? 0 : SA_RESTART; + sa.sa_flags = norestart ? 0 : SA_RESTART; if(sigaction(signum, &sa, &oldsa)) return SIG_ERR; @@ -576,9 +575,9 @@ static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, #ifdef HAVE_SIGINTERRUPT if(oldhdlr != SIG_ERR) - siginterrupt(signum, (int)restartable); + siginterrupt(signum, norestart); #else - (void)restartable; + (void)norestart; #endif return oldhdlr; @@ -597,14 +596,14 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGHUP /* ignore SIGHUP signal */ - old_sighup_handler = set_signal(SIGHUP, SIG_IGN, FALSE); + old_sighup_handler = set_signal(SIGHUP, SIG_IGN, 0); if(old_sighup_handler == SIG_ERR) logmsg("cannot install SIGHUP handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGPIPE /* ignore SIGPIPE signal */ - old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, FALSE); + old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, 0); if(old_sigpipe_handler == SIG_ERR) logmsg("cannot install SIGPIPE handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -612,7 +611,7 @@ void install_signal_handlers(bool keep_sigalrm) #ifdef SIGALRM if(!keep_sigalrm) { /* ignore SIGALRM signal */ - old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, FALSE); + old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, 0); if(old_sigalrm_handler == SIG_ERR) logmsg("cannot install SIGALRM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -622,21 +621,21 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGINT /* handle SIGINT signal with our exit_signal_handler */ - old_sigint_handler = set_signal(SIGINT, exit_signal_handler, TRUE); + old_sigint_handler = set_signal(SIGINT, exit_signal_handler, 1); if(old_sigint_handler == SIG_ERR) logmsg("cannot install SIGINT handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGTERM /* handle SIGTERM signal with our exit_signal_handler */ - old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, TRUE); + old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, 1); if(old_sigterm_handler == SIG_ERR) logmsg("cannot install SIGTERM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #if defined(SIGBREAK) && defined(_WIN32) /* handle SIGBREAK signal with our exit_signal_handler */ - old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, TRUE); + old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, 1); if(old_sigbreak_handler == SIG_ERR) logmsg("cannot install SIGBREAK handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -658,31 +657,31 @@ void restore_signal_handlers(bool keep_sigalrm) { #ifdef SIGHUP if(old_sighup_handler != SIG_ERR) - (void)set_signal(SIGHUP, old_sighup_handler, FALSE); + (void)set_signal(SIGHUP, old_sighup_handler, 0); #endif #ifdef SIGPIPE if(old_sigpipe_handler != SIG_ERR) - (void)set_signal(SIGPIPE, old_sigpipe_handler, FALSE); + (void)set_signal(SIGPIPE, old_sigpipe_handler, 0); #endif #ifdef SIGALRM if(!keep_sigalrm) { if(old_sigalrm_handler != SIG_ERR) - (void)set_signal(SIGALRM, old_sigalrm_handler, FALSE); + (void)set_signal(SIGALRM, old_sigalrm_handler, 0); } #else (void)keep_sigalrm; #endif #ifdef SIGINT if(old_sigint_handler != SIG_ERR) - (void)set_signal(SIGINT, old_sigint_handler, FALSE); + (void)set_signal(SIGINT, old_sigint_handler, 0); #endif #ifdef SIGTERM if(old_sigterm_handler != SIG_ERR) - (void)set_signal(SIGTERM, old_sigterm_handler, FALSE); + (void)set_signal(SIGTERM, old_sigterm_handler, 0); #endif #if defined(SIGBREAK) && defined(_WIN32) if(old_sigbreak_handler != SIG_ERR) - (void)set_signal(SIGBREAK, old_sigbreak_handler, FALSE); + (void)set_signal(SIGBREAK, old_sigbreak_handler, 0); #endif #ifdef _WIN32 (void)SetConsoleCtrlHandler(ctrl_event_handler, FALSE); From 383b980f1511beb236ccdcab39c2fa75d3d349cc Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 19 Jun 2026 01:29:30 +0200 Subject: [PATCH 3/6] Revert "rename option, change type to int" This reverts commit 599bd627394e860d294d40e78de623ae5106bbc9. --- tests/server/util.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/tests/server/util.c b/tests/server/util.c index 841033db91..f92a81fe17 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -555,7 +555,8 @@ static DWORD WINAPI main_window_loop(void *lpParameter) } #endif -static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, int norestart) +static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, + bool restartable) { #if defined(HAVE_SIGACTION) && defined(SA_RESTART) struct sigaction sa, oldsa; @@ -564,7 +565,7 @@ static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, int norestart) sa.sa_handler = handler; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, signum); - sa.sa_flags = norestart ? 0 : SA_RESTART; + sa.sa_flags = restartable ? 0 : SA_RESTART; if(sigaction(signum, &sa, &oldsa)) return SIG_ERR; @@ -575,9 +576,9 @@ static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, int norestart) #ifdef HAVE_SIGINTERRUPT if(oldhdlr != SIG_ERR) - siginterrupt(signum, norestart); + siginterrupt(signum, (int)restartable); #else - (void)norestart; + (void)restartable; #endif return oldhdlr; @@ -596,14 +597,14 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGHUP /* ignore SIGHUP signal */ - old_sighup_handler = set_signal(SIGHUP, SIG_IGN, 0); + old_sighup_handler = set_signal(SIGHUP, SIG_IGN, FALSE); if(old_sighup_handler == SIG_ERR) logmsg("cannot install SIGHUP handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGPIPE /* ignore SIGPIPE signal */ - old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, 0); + old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, FALSE); if(old_sigpipe_handler == SIG_ERR) logmsg("cannot install SIGPIPE handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -611,7 +612,7 @@ void install_signal_handlers(bool keep_sigalrm) #ifdef SIGALRM if(!keep_sigalrm) { /* ignore SIGALRM signal */ - old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, 0); + old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, FALSE); if(old_sigalrm_handler == SIG_ERR) logmsg("cannot install SIGALRM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -621,21 +622,21 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGINT /* handle SIGINT signal with our exit_signal_handler */ - old_sigint_handler = set_signal(SIGINT, exit_signal_handler, 1); + old_sigint_handler = set_signal(SIGINT, exit_signal_handler, TRUE); if(old_sigint_handler == SIG_ERR) logmsg("cannot install SIGINT handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGTERM /* handle SIGTERM signal with our exit_signal_handler */ - old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, 1); + old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, TRUE); if(old_sigterm_handler == SIG_ERR) logmsg("cannot install SIGTERM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #if defined(SIGBREAK) && defined(_WIN32) /* handle SIGBREAK signal with our exit_signal_handler */ - old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, 1); + old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, TRUE); if(old_sigbreak_handler == SIG_ERR) logmsg("cannot install SIGBREAK handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -657,31 +658,31 @@ void restore_signal_handlers(bool keep_sigalrm) { #ifdef SIGHUP if(old_sighup_handler != SIG_ERR) - (void)set_signal(SIGHUP, old_sighup_handler, 0); + (void)set_signal(SIGHUP, old_sighup_handler, FALSE); #endif #ifdef SIGPIPE if(old_sigpipe_handler != SIG_ERR) - (void)set_signal(SIGPIPE, old_sigpipe_handler, 0); + (void)set_signal(SIGPIPE, old_sigpipe_handler, FALSE); #endif #ifdef SIGALRM if(!keep_sigalrm) { if(old_sigalrm_handler != SIG_ERR) - (void)set_signal(SIGALRM, old_sigalrm_handler, 0); + (void)set_signal(SIGALRM, old_sigalrm_handler, FALSE); } #else (void)keep_sigalrm; #endif #ifdef SIGINT if(old_sigint_handler != SIG_ERR) - (void)set_signal(SIGINT, old_sigint_handler, 0); + (void)set_signal(SIGINT, old_sigint_handler, FALSE); #endif #ifdef SIGTERM if(old_sigterm_handler != SIG_ERR) - (void)set_signal(SIGTERM, old_sigterm_handler, 0); + (void)set_signal(SIGTERM, old_sigterm_handler, FALSE); #endif #if defined(SIGBREAK) && defined(_WIN32) if(old_sigbreak_handler != SIG_ERR) - (void)set_signal(SIGBREAK, old_sigbreak_handler, 0); + (void)set_signal(SIGBREAK, old_sigbreak_handler, FALSE); #endif #ifdef _WIN32 (void)SetConsoleCtrlHandler(ctrl_event_handler, FALSE); From ad7de90f17998fd8b2334f5332ab6427964bc972 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 19 Jun 2026 01:34:21 +0200 Subject: [PATCH 4/6] drop SA_RESTART logic --- tests/server/util.c | 54 ++++++++++----------------------------------- 1 file changed, 12 insertions(+), 42 deletions(-) diff --git a/tests/server/util.c b/tests/server/util.c index f92a81fe17..6306e27f45 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -555,36 +555,6 @@ static DWORD WINAPI main_window_loop(void *lpParameter) } #endif -static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, - bool restartable) -{ -#if defined(HAVE_SIGACTION) && defined(SA_RESTART) - struct sigaction sa, oldsa; - - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = handler; - sigemptyset(&sa.sa_mask); - sigaddset(&sa.sa_mask, signum); - sa.sa_flags = restartable ? 0 : SA_RESTART; - - if(sigaction(signum, &sa, &oldsa)) - return SIG_ERR; - - return oldsa.sa_handler; -#else - SIGHANDLER_T oldhdlr = signal(signum, handler); - -#ifdef HAVE_SIGINTERRUPT - if(oldhdlr != SIG_ERR) - siginterrupt(signum, (int)restartable); -#else - (void)restartable; -#endif - - return oldhdlr; -#endif -} - void install_signal_handlers(bool keep_sigalrm) { char errbuf[STRERROR_LEN]; @@ -597,14 +567,14 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGHUP /* ignore SIGHUP signal */ - old_sighup_handler = set_signal(SIGHUP, SIG_IGN, FALSE); + old_sighup_handler = signal(SIGHUP, SIG_IGN); if(old_sighup_handler == SIG_ERR) logmsg("cannot install SIGHUP handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGPIPE /* ignore SIGPIPE signal */ - old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, FALSE); + old_sigpipe_handler = signal(SIGPIPE, SIG_IGN); if(old_sigpipe_handler == SIG_ERR) logmsg("cannot install SIGPIPE handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -612,7 +582,7 @@ void install_signal_handlers(bool keep_sigalrm) #ifdef SIGALRM if(!keep_sigalrm) { /* ignore SIGALRM signal */ - old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, FALSE); + old_sigalrm_handler = signal(SIGALRM, SIG_IGN); if(old_sigalrm_handler == SIG_ERR) logmsg("cannot install SIGALRM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -622,21 +592,21 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGINT /* handle SIGINT signal with our exit_signal_handler */ - old_sigint_handler = set_signal(SIGINT, exit_signal_handler, TRUE); + old_sigint_handler = signal(SIGINT, exit_signal_handler); if(old_sigint_handler == SIG_ERR) logmsg("cannot install SIGINT handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGTERM /* handle SIGTERM signal with our exit_signal_handler */ - old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, TRUE); + old_sigterm_handler = signal(SIGTERM, exit_signal_handler); if(old_sigterm_handler == SIG_ERR) logmsg("cannot install SIGTERM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #if defined(SIGBREAK) && defined(_WIN32) /* handle SIGBREAK signal with our exit_signal_handler */ - old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, TRUE); + old_sigbreak_handler = signal(SIGBREAK, exit_signal_handler); if(old_sigbreak_handler == SIG_ERR) logmsg("cannot install SIGBREAK handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -658,31 +628,31 @@ void restore_signal_handlers(bool keep_sigalrm) { #ifdef SIGHUP if(old_sighup_handler != SIG_ERR) - (void)set_signal(SIGHUP, old_sighup_handler, FALSE); + (void)signal(SIGHUP, old_sighup_handler); #endif #ifdef SIGPIPE if(old_sigpipe_handler != SIG_ERR) - (void)set_signal(SIGPIPE, old_sigpipe_handler, FALSE); + (void)signal(SIGPIPE, old_sigpipe_handler); #endif #ifdef SIGALRM if(!keep_sigalrm) { if(old_sigalrm_handler != SIG_ERR) - (void)set_signal(SIGALRM, old_sigalrm_handler, FALSE); + (void)signal(SIGALRM, old_sigalrm_handler); } #else (void)keep_sigalrm; #endif #ifdef SIGINT if(old_sigint_handler != SIG_ERR) - (void)set_signal(SIGINT, old_sigint_handler, FALSE); + (void)signal(SIGINT, old_sigint_handler); #endif #ifdef SIGTERM if(old_sigterm_handler != SIG_ERR) - (void)set_signal(SIGTERM, old_sigterm_handler, FALSE); + (void)signal(SIGTERM, old_sigterm_handle); #endif #if defined(SIGBREAK) && defined(_WIN32) if(old_sigbreak_handler != SIG_ERR) - (void)set_signal(SIGBREAK, old_sigbreak_handler, FALSE); + (void)signal(SIGBREAK, old_sigbreak_handler); #endif #ifdef _WIN32 (void)SetConsoleCtrlHandler(ctrl_event_handler, FALSE); From f0d07a6904053e17925435cb401a3fd122c852ff Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 19 Jun 2026 01:34:30 +0200 Subject: [PATCH 5/6] Revert "drop SA_RESTART logic" This reverts commit 5fb79fb56786daa848cf3825a16f053ae17c0d78. --- tests/server/util.c | 54 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/tests/server/util.c b/tests/server/util.c index 6306e27f45..f92a81fe17 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -555,6 +555,36 @@ static DWORD WINAPI main_window_loop(void *lpParameter) } #endif +static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, + bool restartable) +{ +#if defined(HAVE_SIGACTION) && defined(SA_RESTART) + struct sigaction sa, oldsa; + + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = handler; + sigemptyset(&sa.sa_mask); + sigaddset(&sa.sa_mask, signum); + sa.sa_flags = restartable ? 0 : SA_RESTART; + + if(sigaction(signum, &sa, &oldsa)) + return SIG_ERR; + + return oldsa.sa_handler; +#else + SIGHANDLER_T oldhdlr = signal(signum, handler); + +#ifdef HAVE_SIGINTERRUPT + if(oldhdlr != SIG_ERR) + siginterrupt(signum, (int)restartable); +#else + (void)restartable; +#endif + + return oldhdlr; +#endif +} + void install_signal_handlers(bool keep_sigalrm) { char errbuf[STRERROR_LEN]; @@ -567,14 +597,14 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGHUP /* ignore SIGHUP signal */ - old_sighup_handler = signal(SIGHUP, SIG_IGN); + old_sighup_handler = set_signal(SIGHUP, SIG_IGN, FALSE); if(old_sighup_handler == SIG_ERR) logmsg("cannot install SIGHUP handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGPIPE /* ignore SIGPIPE signal */ - old_sigpipe_handler = signal(SIGPIPE, SIG_IGN); + old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, FALSE); if(old_sigpipe_handler == SIG_ERR) logmsg("cannot install SIGPIPE handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -582,7 +612,7 @@ void install_signal_handlers(bool keep_sigalrm) #ifdef SIGALRM if(!keep_sigalrm) { /* ignore SIGALRM signal */ - old_sigalrm_handler = signal(SIGALRM, SIG_IGN); + old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, FALSE); if(old_sigalrm_handler == SIG_ERR) logmsg("cannot install SIGALRM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -592,21 +622,21 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGINT /* handle SIGINT signal with our exit_signal_handler */ - old_sigint_handler = signal(SIGINT, exit_signal_handler); + old_sigint_handler = set_signal(SIGINT, exit_signal_handler, TRUE); if(old_sigint_handler == SIG_ERR) logmsg("cannot install SIGINT handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGTERM /* handle SIGTERM signal with our exit_signal_handler */ - old_sigterm_handler = signal(SIGTERM, exit_signal_handler); + old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, TRUE); if(old_sigterm_handler == SIG_ERR) logmsg("cannot install SIGTERM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #if defined(SIGBREAK) && defined(_WIN32) /* handle SIGBREAK signal with our exit_signal_handler */ - old_sigbreak_handler = signal(SIGBREAK, exit_signal_handler); + old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, TRUE); if(old_sigbreak_handler == SIG_ERR) logmsg("cannot install SIGBREAK handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -628,31 +658,31 @@ void restore_signal_handlers(bool keep_sigalrm) { #ifdef SIGHUP if(old_sighup_handler != SIG_ERR) - (void)signal(SIGHUP, old_sighup_handler); + (void)set_signal(SIGHUP, old_sighup_handler, FALSE); #endif #ifdef SIGPIPE if(old_sigpipe_handler != SIG_ERR) - (void)signal(SIGPIPE, old_sigpipe_handler); + (void)set_signal(SIGPIPE, old_sigpipe_handler, FALSE); #endif #ifdef SIGALRM if(!keep_sigalrm) { if(old_sigalrm_handler != SIG_ERR) - (void)signal(SIGALRM, old_sigalrm_handler); + (void)set_signal(SIGALRM, old_sigalrm_handler, FALSE); } #else (void)keep_sigalrm; #endif #ifdef SIGINT if(old_sigint_handler != SIG_ERR) - (void)signal(SIGINT, old_sigint_handler); + (void)set_signal(SIGINT, old_sigint_handler, FALSE); #endif #ifdef SIGTERM if(old_sigterm_handler != SIG_ERR) - (void)signal(SIGTERM, old_sigterm_handle); + (void)set_signal(SIGTERM, old_sigterm_handler, FALSE); #endif #if defined(SIGBREAK) && defined(_WIN32) if(old_sigbreak_handler != SIG_ERR) - (void)signal(SIGBREAK, old_sigbreak_handler); + (void)set_signal(SIGBREAK, old_sigbreak_handler, FALSE); #endif #ifdef _WIN32 (void)SetConsoleCtrlHandler(ctrl_event_handler, FALSE); From 257d00f54accd999cd3017b189af3fbf64e2df98 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 19 Jun 2026 01:58:57 +0200 Subject: [PATCH 6/6] Reapply "rename option, change type to int" This reverts commit a58c282a15f4238e91425592c09fa6f79e1e292a. --- tests/server/util.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/tests/server/util.c b/tests/server/util.c index f92a81fe17..841033db91 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -555,8 +555,7 @@ static DWORD WINAPI main_window_loop(void *lpParameter) } #endif -static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, - bool restartable) +static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, int norestart) { #if defined(HAVE_SIGACTION) && defined(SA_RESTART) struct sigaction sa, oldsa; @@ -565,7 +564,7 @@ static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, sa.sa_handler = handler; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, signum); - sa.sa_flags = restartable ? 0 : SA_RESTART; + sa.sa_flags = norestart ? 0 : SA_RESTART; if(sigaction(signum, &sa, &oldsa)) return SIG_ERR; @@ -576,9 +575,9 @@ static SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler, #ifdef HAVE_SIGINTERRUPT if(oldhdlr != SIG_ERR) - siginterrupt(signum, (int)restartable); + siginterrupt(signum, norestart); #else - (void)restartable; + (void)norestart; #endif return oldhdlr; @@ -597,14 +596,14 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGHUP /* ignore SIGHUP signal */ - old_sighup_handler = set_signal(SIGHUP, SIG_IGN, FALSE); + old_sighup_handler = set_signal(SIGHUP, SIG_IGN, 0); if(old_sighup_handler == SIG_ERR) logmsg("cannot install SIGHUP handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGPIPE /* ignore SIGPIPE signal */ - old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, FALSE); + old_sigpipe_handler = set_signal(SIGPIPE, SIG_IGN, 0); if(old_sigpipe_handler == SIG_ERR) logmsg("cannot install SIGPIPE handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -612,7 +611,7 @@ void install_signal_handlers(bool keep_sigalrm) #ifdef SIGALRM if(!keep_sigalrm) { /* ignore SIGALRM signal */ - old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, FALSE); + old_sigalrm_handler = set_signal(SIGALRM, SIG_IGN, 0); if(old_sigalrm_handler == SIG_ERR) logmsg("cannot install SIGALRM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -622,21 +621,21 @@ void install_signal_handlers(bool keep_sigalrm) #endif #ifdef SIGINT /* handle SIGINT signal with our exit_signal_handler */ - old_sigint_handler = set_signal(SIGINT, exit_signal_handler, TRUE); + old_sigint_handler = set_signal(SIGINT, exit_signal_handler, 1); if(old_sigint_handler == SIG_ERR) logmsg("cannot install SIGINT handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #ifdef SIGTERM /* handle SIGTERM signal with our exit_signal_handler */ - old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, TRUE); + old_sigterm_handler = set_signal(SIGTERM, exit_signal_handler, 1); if(old_sigterm_handler == SIG_ERR) logmsg("cannot install SIGTERM handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); #endif #if defined(SIGBREAK) && defined(_WIN32) /* handle SIGBREAK signal with our exit_signal_handler */ - old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, TRUE); + old_sigbreak_handler = set_signal(SIGBREAK, exit_signal_handler, 1); if(old_sigbreak_handler == SIG_ERR) logmsg("cannot install SIGBREAK handler: (%d) %s", errno, curlx_strerror(errno, errbuf, sizeof(errbuf))); @@ -658,31 +657,31 @@ void restore_signal_handlers(bool keep_sigalrm) { #ifdef SIGHUP if(old_sighup_handler != SIG_ERR) - (void)set_signal(SIGHUP, old_sighup_handler, FALSE); + (void)set_signal(SIGHUP, old_sighup_handler, 0); #endif #ifdef SIGPIPE if(old_sigpipe_handler != SIG_ERR) - (void)set_signal(SIGPIPE, old_sigpipe_handler, FALSE); + (void)set_signal(SIGPIPE, old_sigpipe_handler, 0); #endif #ifdef SIGALRM if(!keep_sigalrm) { if(old_sigalrm_handler != SIG_ERR) - (void)set_signal(SIGALRM, old_sigalrm_handler, FALSE); + (void)set_signal(SIGALRM, old_sigalrm_handler, 0); } #else (void)keep_sigalrm; #endif #ifdef SIGINT if(old_sigint_handler != SIG_ERR) - (void)set_signal(SIGINT, old_sigint_handler, FALSE); + (void)set_signal(SIGINT, old_sigint_handler, 0); #endif #ifdef SIGTERM if(old_sigterm_handler != SIG_ERR) - (void)set_signal(SIGTERM, old_sigterm_handler, FALSE); + (void)set_signal(SIGTERM, old_sigterm_handler, 0); #endif #if defined(SIGBREAK) && defined(_WIN32) if(old_sigbreak_handler != SIG_ERR) - (void)set_signal(SIGBREAK, old_sigbreak_handler, FALSE); + (void)set_signal(SIGBREAK, old_sigbreak_handler, 0); #endif #ifdef _WIN32 (void)SetConsoleCtrlHandler(ctrl_event_handler, FALSE);