summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/basic/signal-util.c26
-rw-r--r--src/basic/signal-util.h2
-rw-r--r--src/login/loginctl.c2
-rw-r--r--src/shared/conf-parser.c2
4 files changed, 12 insertions, 20 deletions
diff --git a/src/basic/signal-util.c b/src/basic/signal-util.c
index bf4816fd6..5bd5c71ce 100644
--- a/src/basic/signal-util.c
+++ b/src/basic/signal-util.c
@@ -234,11 +234,7 @@ int signal_from_string(const char *s) {
const char *p;
int signo, r;
- /* Check that the input is a signal name. */
- signo = __signal_from_string(s);
- if (signo > 0)
- return signo;
-
+ /* Check that the input is a signal number. */
if (safe_atoi(s, &signo) >= 0) {
if (SIGNAL_VALID(signo))
return signo;
@@ -246,6 +242,15 @@ int signal_from_string(const char *s) {
return -ERANGE;
}
+ /* Drop "SIG" prefix. */
+ if (startswith(s, "SIG"))
+ s += 3;
+
+ /* Check that the input is a signal name. */
+ signo = __signal_from_string(s);
+ if (signo > 0)
+ return signo;
+
/* Check that the input is RTMIN or
* RTMIN+n (0 <= n <= SIGRTMAX-SIGRTMIN). */
p = startswith(s, "RTMIN");
@@ -287,17 +292,6 @@ int signal_from_string(const char *s) {
return -EINVAL;
}
-int signal_from_string_try_harder(const char *s) {
- int signo;
- assert(s);
-
- signo = signal_from_string(s);
- if (signo <= 0)
- if (startswith(s, "SIG"))
- return signal_from_string(s+3);
-
- return signo;
-}
#if 0 /// UNNEEDED by elogind
void nop_signal_handler(int sig) {
diff --git a/src/basic/signal-util.h b/src/basic/signal-util.h
index daf8f404d..a52b1d2fa 100644
--- a/src/basic/signal-util.h
+++ b/src/basic/signal-util.h
@@ -26,9 +26,7 @@ int sigprocmask_many(int how, sigset_t *old, ...);
const char *signal_to_string(int i) _const_;
int signal_from_string(const char *s) _pure_;
-int signal_from_string_try_harder(const char *s);
#if 0 /// UNNEEDED by elogind
-
void nop_signal_handler(int sig);
#endif // 0
diff --git a/src/login/loginctl.c b/src/login/loginctl.c
index 0c984f9eb..9badf8e68 100644
--- a/src/login/loginctl.c
+++ b/src/login/loginctl.c
@@ -1546,7 +1546,7 @@ static int parse_argv(int argc, char *argv[]) {
break;
case 's':
- arg_signal = signal_from_string_try_harder(optarg);
+ arg_signal = signal_from_string(optarg);
if (arg_signal < 0) {
log_error("Failed to parse signal string %s.", optarg);
return -EINVAL;
diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
index 6c3dda5ae..704c75c3a 100644
--- a/src/shared/conf-parser.c
+++ b/src/shared/conf-parser.c
@@ -943,7 +943,7 @@ int config_parse_signal(
assert(rvalue);
assert(sig);
- r = signal_from_string_try_harder(rvalue);
+ r = signal_from_string(rvalue);
if (r <= 0) {
log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse signal name, ignoring: %s", rvalue);
return 0;