]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
report: use verb function argument
authorZbigniew Jędrzejewski-Szmek <zbyszek@amutable.com>
Fri, 6 Mar 2026 16:03:47 +0000 (17:03 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 18 Mar 2026 10:28:47 +0000 (10:28 +0000)
src/report/report.c

index ab29cc601f0e6a785658dde30e607907f9b1ccbb..f93b3076c6f8180d026719f3d9b4a8775540212a 100644 (file)
@@ -576,23 +576,17 @@ static int readdir_sources(char **ret_directory, DirectoryEntries **ret) {
         return m > 0;
 }
 
-static int verb_metrics(int argc, char *argv[], uintptr_t _data, void *userdata) {
-        Action action;
+static int verb_metrics(int argc, char *argv[], uintptr_t data, void *userdata) {
+        Action action = data;
         int r;
 
         assert(argc >= 1);
         assert(argv);
+        assert(IN_SET(action, ACTION_LIST, ACTION_DESCRIBE));
 
         /* Enable JSON-SEQ mode here, since we'll dump a large series of JSON objects */
         arg_json_format_flags |= SD_JSON_FORMAT_SEQ;
 
-        if (streq_ptr(argv[0], "metrics"))
-                action = ACTION_LIST;
-        else {
-                assert(streq_ptr(argv[0], "describe-metrics"));
-                action = ACTION_DESCRIBE;
-        }
-
         r = parse_metrics_matches(argv + 1);
         if (r < 0)
                 return r;
@@ -830,12 +824,11 @@ static int parse_argv(int argc, char *argv[]) {
 }
 
 static int report_main(int argc, char *argv[]) {
-
         static const Verb verbs[] = {
-                { "help",             VERB_ANY, 1,        0, verb_help         },
-                { "metrics",          VERB_ANY, VERB_ANY, 0, verb_metrics      },
-                { "describe-metrics", VERB_ANY, VERB_ANY, 0, verb_metrics      },
-                { "list-sources",     VERB_ANY, 1,        0, verb_list_sources },
+                { "help",             VERB_ANY, 1,        0, verb_help                                },
+                { "metrics",          VERB_ANY, VERB_ANY, 0, verb_metrics,      ACTION_LIST           },
+                { "describe-metrics", VERB_ANY, VERB_ANY, 0, verb_metrics,      ACTION_DESCRIBE       },
+                { "list-sources",     VERB_ANY, 1,        0, verb_list_sources                        },
                 {}
         };