aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2026-03-24 18:46:50 +0100
committerMarkus Uhlin <markus@nifty-networks.net>2026-03-24 18:46:50 +0100
commit65b3cd7989982fca5c67fd39c77661e95ed0c7cb (patch)
tree192f6b3590da4fabd71464ba7934f804a44c5d63
parent6f899539d84c5e98091bd210331c728ad8266a5e (diff)
TerminateServer: usage of strsignal()
-rw-r--r--FICS/ficsmain.c30
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);
}