diff options
author | Ben Pfaff <blp@nicira.com> | 2011-04-01 10:22:51 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2011-04-04 10:58:55 -0700 |
commit | b725cf028c85d0ebafcf55e503d332bb96fb708c (patch) | |
tree | 402a8f9decfc85dba9eba3976fb6c4fc6b5bbb05 /lib/signals.c | |
parent | 67a51a1d851df25eebc676cf24bbb0f821d1c736 (diff) | |
download | openvswitch-b725cf028c85d0ebafcf55e503d332bb96fb708c.tar.gz |
signals: New function signal_name().
This will acquire a new user in an upcoming commit.
Diffstat (limited to 'lib/signals.c')
-rw-r--r-- | lib/signals.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lib/signals.c b/lib/signals.c index eabbcc382..707bf8368 100644 --- a/lib/signals.c +++ b/lib/signals.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2011 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ #include <unistd.h> #include "poll-loop.h" #include "socket-util.h" +#include "type-props.h" #include "util.h" #if defined(_NSIG) @@ -126,3 +127,24 @@ signal_handler(int signr) signaled[signr] = true; } } + +/* Returns the name of signal 'signum' as a string. The string may be in a + * static buffer that is reused from one call to the next. + * + * The string is probably a (possibly multi-word) description of the signal + * (e.g. "Hangup") instead of just the stringified version of the macro + * (e.g. "SIGHUP"). */ +const char * +signal_name(int signum) +{ + const char *name = NULL; +#ifdef HAVE_STRSIGNAL + name = strsignal(signum); +#endif + if (!name) { + static char buffer[7 + INT_STRLEN(int) + 1]; + sprintf(buffer, "signal %d", signum); + name = buffer; + } + return name; +} |