]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udevadm: several cleanups around parse_device_action()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 2 Feb 2025 04:30:26 +0000 (13:30 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 2 Feb 2025 06:55:01 +0000 (15:55 +0900)
- drop unnecessary one line function dump_device_action_table(),
- make parse_device_action() log about invalid action string,
- rename output argument of parse_device_action().

src/libsystemd/sd-device/device-private.c
src/libsystemd/sd-device/device-private.h
src/udev/udevadm-test-builtin.c
src/udev/udevadm-test.c
src/udev/udevadm-trigger.c
src/udev/udevadm-util.c
src/udev/udevadm-util.h

index 463eb7ea9ef76b31a71fb33fa721b0885f7dc561..00279ae01f08abaa3116986d8a864f2e152edbb1 100644 (file)
@@ -961,7 +961,3 @@ static const char* const device_action_table[_SD_DEVICE_ACTION_MAX] = {
 };
 
 DEFINE_STRING_TABLE_LOOKUP(device_action, sd_device_action_t);
-
-void dump_device_action_table(void) {
-        DUMP_STRING_TABLE(device_action, sd_device_action_t, _SD_DEVICE_ACTION_MAX);
-}
index 4165c85023b8646bd0ec1c4511918f0ecb4e1eaa..aa42cbb2a19c9da0d7752026e7084a8188745be9 100644 (file)
@@ -77,4 +77,3 @@ int device_read_uevent_file(sd_device *device);
 int device_set_action(sd_device *device, sd_device_action_t a);
 sd_device_action_t device_action_from_string(const char *s) _pure_;
 const char* device_action_to_string(sd_device_action_t a) _const_;
-void dump_device_action_table(void);
index 382897efd46e4fcde85bbf188a0b441a4cc9d03f..13ecbe977388b5e31e2cc68a2073a8cf4a93e26d 100644 (file)
@@ -45,10 +45,8 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
                 case 'a':
                         r = parse_device_action(optarg, &arg_action);
-                        if (r < 0)
-                                return log_error_errno(r, "Invalid action '%s'", optarg);
-                        if (r == 0)
-                                return 0;
+                        if (r <= 0)
+                                return r;
                         break;
                 case 'V':
                         return print_version();
index c3f56d2d81b769aa1e4e90846256eb2dd6d76576..a6da337d7cb5114a32ba2622e01e303b93385bb8 100644 (file)
@@ -60,10 +60,8 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
                 case 'a':
                         r = parse_device_action(optarg, &arg_action);
-                        if (r < 0)
-                                return log_error_errno(r, "Invalid action '%s'", optarg);
-                        if (r == 0)
-                                return 0;
+                        if (r <= 0)
+                                return r;
                         break;
                 case 'N':
                         arg_resolve_name_timing = resolve_name_timing_from_string(optarg);
index 808c383e21d7080ac71f627637a35dd01799212b..8ab4b497894886412d82dc7b6860b1696c92369a 100644 (file)
@@ -369,10 +369,8 @@ int trigger_main(int argc, char *argv[], void *userdata) {
                         break;
                 case 'c':
                         r = parse_device_action(optarg, &action);
-                        if (r < 0)
-                                return log_error_errno(r, "Unknown action '%s'", optarg);
-                        if (r == 0)
-                                return 0;
+                        if (r <= 0)
+                                return r;
                         break;
                 case 's':
                         r = sd_device_enumerator_add_match_subsystem(e, optarg, true);
index 641adb4f974d7885b4b9d41850b44353fc58a267..858c23f586d2b37b48a9f327975ce414b460937c 100644 (file)
@@ -10,6 +10,7 @@
 #include "constants.h"
 #include "device-private.h"
 #include "path-util.h"
+#include "string-table.h"
 #include "udev-ctrl.h"
 #include "udev-varlink.h"
 #include "udevadm-util.h"
@@ -110,22 +111,19 @@ int find_device_with_action(const char *id, sd_device_action_t action, sd_device
         return 0;
 }
 
-int parse_device_action(const char *str, sd_device_action_t *action) {
-        sd_device_action_t a;
 
+int parse_device_action(const char *str, sd_device_action_t *ret) {
         assert(str);
-        assert(action);
 
-        if (streq(str, "help")) {
-                dump_device_action_table();
-                return 0;
-        }
+        if (streq(str, "help"))
+                return DUMP_STRING_TABLE(device_action, sd_device_action_t, _SD_DEVICE_ACTION_MAX);
 
-        a = device_action_from_string(str);
+        sd_device_action_t a = device_action_from_string(str);
         if (a < 0)
-                return a;
+                return log_error_errno(a, "Invalid action '%s'.", str);
 
-        *action = a;
+        if (ret)
+                *ret = a;
         return 1;
 }
 
index 0a8b31ada7f3c46c6e1a38e441e53c00662755e1..084629850228e4628c223963c56a448d298ff6a7 100644 (file)
@@ -5,6 +5,6 @@
 
 int find_device(const char *id, const char *prefix, sd_device **ret);
 int find_device_with_action(const char *id, sd_device_action_t action, sd_device **ret);
-int parse_device_action(const char *str, sd_device_action_t *action);
+int parse_device_action(const char *str, sd_device_action_t *ret);
 int udev_ping(usec_t timeout, bool ignore_connection_failure);
 int search_rules_files(char * const *a, const char *root, char ***ret);