]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
machinectl: call all verb functions verb_*
authorZbigniew Jędrzejewski-Szmek <zbyszek@amutable.com>
Fri, 6 Mar 2026 12:00:39 +0000 (13:00 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 18 Mar 2026 10:28:47 +0000 (10:28 +0000)
src/machine/machinectl.c

index 9b2056918c03c830960eb5e44ebea56a06c63473..f71d3deee2ab4707150a1c165c08f90981d96d7d 100644 (file)
@@ -277,7 +277,7 @@ static int show_table(Table *table, const char *word) {
         return 0;
 }
 
-static int list_machines(int argc, char *argv[], void *userdata) {
+static int verb_list_machines(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
@@ -354,7 +354,7 @@ static int list_machines(int argc, char *argv[], void *userdata) {
         return show_table(table, "machines");
 }
 
-static int list_images(int argc, char *argv[], void *userdata) {
+static int verb_list_images(int argc, char *argv[], void *userdata) {
 
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
@@ -745,7 +745,7 @@ static int show_machine_properties(sd_bus *bus, const char *path, bool *new_line
         return r;
 }
 
-static int show_machine(int argc, char *argv[], void *userdata) {
+static int verb_show_machine(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         bool properties, new_line = false;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1036,7 +1036,7 @@ static int show_image_properties(sd_bus *bus, const char *path, bool *new_line)
         return r;
 }
 
-static int show_image(int argc, char *argv[], void *userdata) {
+static int verb_show_image(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         bool properties, new_line = false;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1080,7 +1080,7 @@ static int show_image(int argc, char *argv[], void *userdata) {
         return r;
 }
 
-static int kill_machine(int argc, char *argv[], void *userdata) {
+static int verb_kill_machine(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1105,7 +1105,7 @@ static int kill_machine(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int reboot_machine(int argc, char *argv[], void *userdata) {
+static int verb_reboot_machine(int argc, char *argv[], void *userdata) {
         if (arg_runner == RUNNER_VMSPAWN)
                 return log_error_errno(
                                 SYNTHETIC_ERRNO(EOPNOTSUPP),
@@ -1115,17 +1115,17 @@ static int reboot_machine(int argc, char *argv[], void *userdata) {
         arg_kill_whom = "leader";
         arg_signal = SIGINT; /* sysvinit + systemd */
 
-        return kill_machine(argc, argv, userdata);
+        return verb_kill_machine(argc, argv, userdata);
 }
 
-static int poweroff_machine(int argc, char *argv[], void *userdata) {
+static int verb_poweroff_machine(int argc, char *argv[], void *userdata) {
         arg_kill_whom = "leader";
         arg_signal = SIGRTMIN+4; /* only systemd */
 
-        return kill_machine(argc, argv, userdata);
+        return verb_kill_machine(argc, argv, userdata);
 }
 
-static int terminate_machine(int argc, char *argv[], void *userdata) {
+static int verb_terminate_machine(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1148,7 +1148,7 @@ static const char *select_copy_method(bool copy_from, bool force) {
                 return copy_from ? "CopyFromMachine" : "CopyToMachine";
 }
 
-static int copy_files(int argc, char *argv[], void *userdata) {
+static int verb_copy_files(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_free_ char *abs_host_path = NULL;
@@ -1203,7 +1203,7 @@ static int copy_files(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int bind_mount(int argc, char *argv[], void *userdata) {
+static int verb_bind_mount(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1336,7 +1336,7 @@ static int parse_machine_uid(const char *spec, const char **machine, char **uid)
         return 0;
 }
 
-static int login_machine(int argc, char *argv[], void *userdata) {
+static int verb_login_machine(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot = NULL;
@@ -1387,7 +1387,7 @@ static int login_machine(int argc, char *argv[], void *userdata) {
         return process_forward(event, slot, master, PTY_FORWARD_IGNORE_VHANGUP, machine);
 }
 
-static int shell_machine(int argc, char *argv[], void *userdata) {
+static int verb_shell_machine(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL, *m = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot = NULL;
@@ -1515,7 +1515,7 @@ static int get_settings_path(const char *name, char **ret_path) {
         return -ENOENT;
 }
 
-static int edit_settings(int argc, char *argv[], void *userdata) {
+static int verb_edit_settings(int argc, char *argv[], void *userdata) {
         _cleanup_(edit_file_context_done) EditFileContext context = {};
         int r;
 
@@ -1585,7 +1585,7 @@ static int edit_settings(int argc, char *argv[], void *userdata) {
         return do_edit_files_and_install(&context);
 }
 
-static int cat_settings(int argc, char *argv[], void *userdata) {
+static int verb_cat_settings(int argc, char *argv[], void *userdata) {
         int r = 0;
 
         if (arg_transport != BUS_TRANSPORT_LOCAL)
@@ -1636,7 +1636,7 @@ static int cat_settings(int argc, char *argv[], void *userdata) {
         return r;
 }
 
-static int remove_image(int argc, char *argv[], void *userdata) {
+static int verb_remove_image(int argc, char *argv[], void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
 
@@ -1663,7 +1663,7 @@ static int remove_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int rename_image(int argc, char *argv[], void *userdata) {
+static int verb_rename_image(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1683,7 +1683,7 @@ static int rename_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int clone_image(int argc, char *argv[], void *userdata) {
+static int verb_clone_image(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1707,7 +1707,7 @@ static int clone_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int read_only_image(int argc, char *argv[], void *userdata) {
+static int verb_read_only_image(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int b = true, r;
@@ -1765,7 +1765,7 @@ static int make_service_name(const char *name, char **ret) {
         return 0;
 }
 
-static int start_machine(int argc, char *argv[], void *userdata) {
+static int verb_start_machine(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1821,7 +1821,7 @@ static int start_machine(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int enable_machine(int argc, char *argv[], void *userdata) {
+static int verb_enable_machine(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         const char *method;
@@ -1909,15 +1909,15 @@ static int enable_machine(int argc, char *argv[], void *userdata) {
                         return log_oom();
 
                 if (enable)
-                        return start_machine(strv_length(new_args), new_args, userdata);
+                        return verb_start_machine(strv_length(new_args), new_args, userdata);
 
-                return poweroff_machine(strv_length(new_args), new_args, userdata);
+                return verb_poweroff_machine(strv_length(new_args), new_args, userdata);
         }
 
         return 0;
 }
 
-static int set_limit(int argc, char *argv[], void *userdata) {
+static int verb_set_limit(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = userdata;
         uint64_t limit;
@@ -1947,7 +1947,7 @@ static int set_limit(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int clean_images(int argc, char *argv[], void *userdata) {
+static int verb_clean_images(int argc, char *argv[], void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         uint64_t usage, total = 0;
@@ -2048,7 +2048,7 @@ static int chainload_importctl(int argc, char *argv[]) {
         return log_error_errno(r, "Failed to invoke 'importctl': %m");
 }
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -2137,6 +2137,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
 
         enum {
@@ -2257,7 +2261,7 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case 'h':
-                        return help(0, NULL, NULL);
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -2444,35 +2448,35 @@ done:
 static int machinectl_main(int argc, char *argv[], sd_bus *bus) {
 
         static const Verb verbs[] = {
-                { "help",            VERB_ANY, VERB_ANY, 0,            help              },
-                { "list",            VERB_ANY, 1,        VERB_DEFAULT, list_machines     },
-                { "list-images",     VERB_ANY, 1,        0,            list_images       },
-                { "status",          2,        VERB_ANY, 0,            show_machine      },
-                { "image-status",    VERB_ANY, VERB_ANY, 0,            show_image        },
-                { "show",            VERB_ANY, VERB_ANY, 0,            show_machine      },
-                { "show-image",      VERB_ANY, VERB_ANY, 0,            show_image        },
-                { "terminate",       2,        VERB_ANY, 0,            terminate_machine },
-                { "reboot",          2,        VERB_ANY, 0,            reboot_machine    },
-                { "restart",         2,        VERB_ANY, 0,            reboot_machine    }, /* Convenience alias */
-                { "poweroff",        2,        VERB_ANY, 0,            poweroff_machine  },
-                { "stop",            2,        VERB_ANY, 0,            poweroff_machine  }, /* Convenience alias */
-                { "kill",            2,        VERB_ANY, 0,            kill_machine      },
-                { "login",           VERB_ANY, 2,        0,            login_machine     },
-                { "shell",           VERB_ANY, VERB_ANY, 0,            shell_machine     },
-                { "bind",            3,        4,        0,            bind_mount        },
-                { "edit",            2,        VERB_ANY, 0,            edit_settings     },
-                { "cat",             2,        VERB_ANY, 0,            cat_settings      },
-                { "copy-to",         3,        4,        0,            copy_files        },
-                { "copy-from",       3,        4,        0,            copy_files        },
-                { "remove",          2,        VERB_ANY, 0,            remove_image      },
-                { "rename",          3,        3,        0,            rename_image      },
-                { "clone",           3,        3,        0,            clone_image       },
-                { "read-only",       2,        3,        0,            read_only_image   },
-                { "start",           2,        VERB_ANY, 0,            start_machine     },
-                { "enable",          2,        VERB_ANY, 0,            enable_machine    },
-                { "disable",         2,        VERB_ANY, 0,            enable_machine    },
-                { "set-limit",       2,        3,        0,            set_limit         },
-                { "clean",           VERB_ANY, 1,        0,            clean_images      },
+                { "help",            VERB_ANY, VERB_ANY, 0,            verb_help              },
+                { "list",            VERB_ANY, 1,        VERB_DEFAULT, verb_list_machines     },
+                { "list-images",     VERB_ANY, 1,        0,            verb_list_images       },
+                { "status",          2,        VERB_ANY, 0,            verb_show_machine      },
+                { "image-status",    VERB_ANY, VERB_ANY, 0,            verb_show_image        },
+                { "show",            VERB_ANY, VERB_ANY, 0,            verb_show_machine      },
+                { "show-image",      VERB_ANY, VERB_ANY, 0,            verb_show_image        },
+                { "terminate",       2,        VERB_ANY, 0,            verb_terminate_machine },
+                { "reboot",          2,        VERB_ANY, 0,            verb_reboot_machine    },
+                { "restart",         2,        VERB_ANY, 0,            verb_reboot_machine    }, /* Convenience alias */
+                { "poweroff",        2,        VERB_ANY, 0,            verb_poweroff_machine  },
+                { "stop",            2,        VERB_ANY, 0,            verb_poweroff_machine  }, /* Convenience alias */
+                { "kill",            2,        VERB_ANY, 0,            verb_kill_machine      },
+                { "login",           VERB_ANY, 2,        0,            verb_login_machine     },
+                { "shell",           VERB_ANY, VERB_ANY, 0,            verb_shell_machine     },
+                { "bind",            3,        4,        0,            verb_bind_mount        },
+                { "edit",            2,        VERB_ANY, 0,            verb_edit_settings     },
+                { "cat",             2,        VERB_ANY, 0,            verb_cat_settings      },
+                { "copy-to",         3,        4,        0,            verb_copy_files        },
+                { "copy-from",       3,        4,        0,            verb_copy_files        },
+                { "remove",          2,        VERB_ANY, 0,            verb_remove_image      },
+                { "rename",          3,        3,        0,            verb_rename_image      },
+                { "clone",           3,        3,        0,            verb_clone_image       },
+                { "read-only",       2,        3,        0,            verb_read_only_image   },
+                { "start",           2,        VERB_ANY, 0,            verb_start_machine     },
+                { "enable",          2,        VERB_ANY, 0,            verb_enable_machine    },
+                { "disable",         2,        VERB_ANY, 0,            verb_enable_machine    },
+                { "set-limit",       2,        3,        0,            verb_set_limit         },
+                { "clean",           VERB_ANY, 1,        0,            verb_clean_images      },
                 {}
         };