]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
util: rename signal_from_string_try_harder() to signal_from_string()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 3 May 2018 07:38:57 +0000 (16:38 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 3 May 2018 07:52:49 +0000 (16:52 +0900)
Also this makes the new `signal_from_string()` function reject
e.g, `SIG3` or `SIG+5`.

src/basic/signal-util.c
src/basic/signal-util.h
src/core/load-fragment.c
src/login/loginctl.c
src/machine/machinectl.c
src/nspawn/nspawn.c
src/shared/bus-unit-util.c
src/shared/conf-parser.c
src/systemctl/systemctl.c

index 30ba8fb1114869645d24628843dd7d8cc573c330..cd93a98b5022653f0428831fafb26dff0001b27a 100644 (file)
@@ -232,11 +232,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;
@@ -244,6 +240,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");
@@ -285,18 +290,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;
-}
-
 void nop_signal_handler(int sig) {
         /* nothing here */
 }
index de2364fac4f9a48df137d67086661feec21e2479..0c43467b63f0196da339e5cfc771049878520195 100644 (file)
@@ -24,8 +24,6 @@ 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);
-
 void nop_signal_handler(int sig);
 
 static inline void block_signals_reset(sigset_t *ss) {
index 9699421cf14e761e667f1dd717dfff8bc9cdb9c8..d2a4c18bb86fac15467b9dfe966b291c8b95e16b 100644 (file)
@@ -4042,7 +4042,7 @@ int config_parse_set_status(
 
                 r = safe_atoi(temp, &val);
                 if (r < 0) {
-                        val = signal_from_string_try_harder(temp);
+                        val = signal_from_string(temp);
 
                         if (val <= 0) {
                                 log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse value, ignoring: %s", word);
index 1e9f50453b9edfc09cd5ef8c8bcfa935f687f309..f73d2f0a7593616174efc062f974495ea154818a 100644 (file)
@@ -1465,7 +1465,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;
index 508d3775d32062e1343d48cb5fcd4d5744259a8a..c16f54c283285e320468d7c8da9707e998524ce6 100644 (file)
@@ -2879,7 +2879,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;
index 4dd61cb003fb51950d0db7774e45a14f22bb8bd8..23bc9402a8af22be1f779c3f8d3a6bc6868ee2aa 100644 (file)
@@ -972,7 +972,7 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case ARG_KILL_SIGNAL:
-                        arg_kill_signal = signal_from_string_try_harder(optarg);
+                        arg_kill_signal = signal_from_string(optarg);
                         if (arg_kill_signal < 0) {
                                 log_error("Cannot parse signal: %s", optarg);
                                 return -EINVAL;
index a3b9bee6ce789cd2a45bc7c6065ec85c86826c3a..78d5141053dbe4cff35f19798eb6e125a6a0d6c4 100644 (file)
@@ -109,7 +109,7 @@ DEFINE_BUS_APPEND_PARSE("i", log_level_from_string);
 DEFINE_BUS_APPEND_PARSE("i", parse_errno);
 DEFINE_BUS_APPEND_PARSE("i", sched_policy_from_string);
 DEFINE_BUS_APPEND_PARSE("i", secure_bits_from_string);
-DEFINE_BUS_APPEND_PARSE("i", signal_from_string_try_harder);
+DEFINE_BUS_APPEND_PARSE("i", signal_from_string);
 DEFINE_BUS_APPEND_PARSE("i", socket_protocol_from_name);
 DEFINE_BUS_APPEND_PARSE_PTR("i", int32_t, int, ioprio_parse_priority);
 DEFINE_BUS_APPEND_PARSE_PTR("i", int32_t, int, parse_nice);
@@ -1189,7 +1189,7 @@ static int bus_append_kill_property(sd_bus_message *m, const char *field, const
 
         if (streq(field, "KillSignal"))
 
-                return bus_append_signal_from_string_try_harder(m, field, eq);
+                return bus_append_signal_from_string(m, field, eq);
 
         return 0;
 }
@@ -1298,7 +1298,7 @@ static int bus_append_service_property(sd_bus_message *m, const char *field, con
 
                         r = safe_atoi(word, &val);
                         if (r < 0) {
-                                val = signal_from_string_try_harder(word);
+                                val = signal_from_string(word);
                                 if (val < 0)
                                         return log_error_errno(r, "Invalid status or signal %s in %s: %m", word, field);
 
index 45885618901fb3b5448be86dcb3649dbfebf6105..fec7c62802234427bd6a0ea7879e61516f61b650 100644 (file)
@@ -927,7 +927,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;
index 49395ce02c327adaffd2aa4be216f81a8759e497..a9461aa3911b911761f818bee4eb3d26fb0f7b17 100644 (file)
@@ -7601,7 +7601,7 @@ static int systemctl_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;