diff options
| author | Markus Uhlin <markus@nifty-networks.net> | 2026-03-24 18:46:50 +0100 |
|---|---|---|
| committer | Markus Uhlin <markus@nifty-networks.net> | 2026-03-24 18:46:50 +0100 |
| commit | 65b3cd7989982fca5c67fd39c77661e95ed0c7cb (patch) | |
| tree | 192f6b3590da4fabd71464ba7934f804a44c5d63 /FICS/ficsmain.c | |
| parent | 6f899539d84c5e98091bd210331c728ad8266a5e (diff) | |
TerminateServer: usage of strsignal()
Diffstat (limited to 'FICS/ficsmain.c')
| -rw-r--r-- | FICS/ficsmain.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/FICS/ficsmain.c b/FICS/ficsmain.c index 06e1771..eb75bab 100644 --- a/FICS/ficsmain.c +++ b/FICS/ficsmain.c @@ -200,10 +200,38 @@ GetArgs(int argc, char *argv[]) PRIVATE __dead void TerminateServer(int sig) { - (void) fprintf(stderr, "FICS: Got signal %d\n", sig); + char buf[1024] = { '\0' }; + + // NOLINTBEGIN + switch (sig) { + case SIGINT: + (void) snprintf(buf, sizeof buf, "FICS: Got signal %d " + "(SIGINT): ", sig); + break; + case SIGTERM: + (void) snprintf(buf, sizeof buf, "FICS: Got signal %d " + "(SIGTERM): ", sig); + break; + default: + (void) snprintf(buf, sizeof buf, "FICS: Got signal %d " + "(Unknown): ", sig); + break; + } + + const char *desc = strsignal(sig); + + (void) strlcat(buf, (desc ? desc : "n/a"), sizeof buf); + + if (strlcat(buf, "\n", sizeof buf) >= sizeof buf) + /* null */; + else + (void) fputs(buf, stderr); + output_shut_mess(); TerminateCleanup(); net_close(); + // NOLINTEND + _Exit(EXIT_FAILURE); } |
