tree-wide: extend verbs functions with extra per-verb data parameter
We often have a pattern where the same verb function is used for multiple actions. This leads to an antipattern where we figure out what action needs to be taken from argv[0] multiple times: often once in parse_argv() to figure out what options are allowed, then once again implicitly in dispatch_verb(), and then again in the action verb itself. Let's allow passing a parameter into the verb to simplify this. This matches a pattern we have in conf-parser.h, where we have both void *userdata (more global) and void *data (per-config item). Here, I opted for uintptr_t userdata. It seems that most of the time we'll want to just pass an enum value. This works OK with no casts. I also tried a void* and union. In both cases, much more boilerplate is needed: either a cast or a macro to help avoid compiler warnings. uintptr_t seems generic enough to cover foreseeable usecases with no fuss. This is a noop refactoring. See next commit for an example.
This commit is contained in:
committed by
Luca Boccassi
parent
9e8babc8ab
commit
31ddd87da0
@@ -17,7 +17,7 @@
|
||||
#include "systemctl-util.h"
|
||||
#include "unit-name.h"
|
||||
|
||||
int verb_add_dependency(int argc, char *argv[], void *userdata) {
|
||||
int verb_add_dependency(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
_cleanup_free_ char *target = NULL;
|
||||
const char *verb = argv[0];
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_add_dependency(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_add_dependency(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
#include "systemctl-trivial-method.h"
|
||||
#include "systemctl-util.h"
|
||||
|
||||
int verb_cancel(int argc, char *argv[], void *userdata) {
|
||||
int verb_cancel(int argc, char *argv[], uintptr_t data, void *userdata) {
|
||||
sd_bus *bus;
|
||||
int r;
|
||||
|
||||
if (argc <= 1) /* Shortcut to trivial_method() if no argument is given */
|
||||
return verb_trivial_method(argc, argv, userdata);
|
||||
return verb_trivial_method(argc, argv, data, userdata);
|
||||
|
||||
r = acquire_bus(BUS_MANAGER, &bus);
|
||||
if (r < 0)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_cancel(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_cancel(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "systemctl-clean-or-freeze.h"
|
||||
#include "systemctl-util.h"
|
||||
|
||||
int verb_clean_or_freeze(int argc, char *argv[], void *userdata) {
|
||||
int verb_clean_or_freeze(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(bus_wait_for_units_freep) BusWaitForUnits *w = NULL;
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
int r, ret = EXIT_SUCCESS;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_clean_or_freeze(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_clean_or_freeze(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -170,7 +170,7 @@ int halt_main(void) {
|
||||
arg_no_block = true;
|
||||
|
||||
if (!arg_dry_run)
|
||||
return verb_start(0, NULL, NULL);
|
||||
return verb_start(0, NULL, /* data= */ 0, NULL);
|
||||
}
|
||||
|
||||
r = must_be_root();
|
||||
|
||||
@@ -62,7 +62,7 @@ int daemon_reload(enum action action, bool graceful) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int verb_daemon_reload(int argc, char *argv[], void *userdata) {
|
||||
int verb_daemon_reload(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
enum action a;
|
||||
int r;
|
||||
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
|
||||
int daemon_reload(enum action action, bool graceful);
|
||||
|
||||
int verb_daemon_reload(int argc, char *argv[], void *userdata);
|
||||
int verb_daemon_reload(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "terminal-util.h"
|
||||
#include "unit-name.h"
|
||||
|
||||
int verb_cat(int argc, char *argv[], void *userdata) {
|
||||
int verb_cat(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_hashmap_free_ Hashmap *cached_id_map = NULL, *cached_name_map = NULL;
|
||||
_cleanup_(lookup_paths_done) LookupPaths lp = {};
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
@@ -324,7 +324,7 @@ static int find_paths_to_edit(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_edit(int argc, char *argv[], void *userdata) {
|
||||
int verb_edit(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(edit_file_context_done) EditFileContext context = {
|
||||
.marker_start = DROPIN_MARKER_START,
|
||||
.marker_end = DROPIN_MARKER_END,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_cat(int argc, char *argv[], void *userdata);
|
||||
int verb_edit(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_cat(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_edit(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -80,7 +80,7 @@ static int normalize_names(char **names) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_enable(int argc, char *argv[], void *userdata) {
|
||||
int verb_enable(int argc, char *argv[], uintptr_t data, void *userdata) {
|
||||
const char *verb = ASSERT_PTR(argv[0]);
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
int carries_install_info = -1;
|
||||
@@ -402,7 +402,7 @@ int verb_enable(int argc, char *argv[], void *userdata) {
|
||||
return log_oom();
|
||||
}
|
||||
|
||||
return verb_start(strv_length(new_args), new_args, userdata);
|
||||
return verb_start(strv_length(new_args), new_args, data, userdata);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_enable(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_enable(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -57,7 +57,7 @@ static int check_unit_generic(int code, const UnitActiveState good_states[], siz
|
||||
return ok ? EXIT_SUCCESS : not_found ? EXIT_PROGRAM_OR_SERVICES_STATUS_UNKNOWN : code;
|
||||
}
|
||||
|
||||
int verb_is_active(int argc, char *argv[], void *userdata) {
|
||||
int verb_is_active(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
|
||||
static const UnitActiveState states[] = {
|
||||
UNIT_ACTIVE,
|
||||
@@ -69,7 +69,7 @@ int verb_is_active(int argc, char *argv[], void *userdata) {
|
||||
return check_unit_generic(EXIT_PROGRAM_NOT_RUNNING, states, ELEMENTSOF(states), strv_skip(argv, 1));
|
||||
}
|
||||
|
||||
int verb_is_failed(int argc, char *argv[], void *userdata) {
|
||||
int verb_is_failed(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
|
||||
static const UnitActiveState states[] = {
|
||||
UNIT_FAILED,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_is_active(int argc, char *argv[], void *userdata);
|
||||
int verb_is_failed(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_is_active(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_is_failed(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -65,7 +65,7 @@ static int show_installation_targets(sd_bus *bus, const char *name) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_is_enabled(int argc, char *argv[], void *userdata) {
|
||||
int verb_is_enabled(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
bool not_found = true, enabled = false;
|
||||
int r;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_is_enabled(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_is_enabled(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -25,7 +25,7 @@ static int match_startup_finished(sd_bus_message *m, void *userdata, sd_bus_erro
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_is_system_running(int argc, char *argv[], void *userdata) {
|
||||
int verb_is_system_running(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
_cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot_startup_finished = NULL;
|
||||
_cleanup_(sd_event_unrefp) sd_event* event = NULL;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_is_system_running(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_is_system_running(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "systemctl-kill.h"
|
||||
#include "systemctl-util.h"
|
||||
|
||||
int verb_kill(int argc, char *argv[], void *userdata) {
|
||||
int verb_kill(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(bus_wait_for_units_freep) BusWaitForUnits *w = NULL;
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
const char *kill_whom;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_kill(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_kill(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -167,7 +167,7 @@ static int list_dependencies_one(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_dependencies(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_dependencies(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_strv_free_ char **units = NULL, **done = NULL;
|
||||
char **patterns;
|
||||
sd_bus *bus;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_list_dependencies(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_list_dependencies(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -133,7 +133,7 @@ static bool output_show_job(struct job_info *job, char **patterns) {
|
||||
return strv_fnmatch_or_empty(patterns, job->name, FNM_NOESCAPE);
|
||||
}
|
||||
|
||||
int verb_list_jobs(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_jobs(int argc, char *argv[], uintptr_t _data, 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_free_ struct job_info *jobs = NULL;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_list_jobs(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_list_jobs(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -231,7 +231,7 @@ static int output_machines_list(struct machine_info *machine_infos, unsigned n)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_machines(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_machines(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
struct machine_info *machine_infos = NULL;
|
||||
sd_bus *bus;
|
||||
int r, rc;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "bus-map-properties.h"
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_list_machines(int argc, char *argv[], void *userdata);
|
||||
int verb_list_machines(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
struct machine_info {
|
||||
bool is_host;
|
||||
|
||||
@@ -173,7 +173,7 @@ static int output_unit_file_list(const UnitFileList *units, unsigned c) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_unit_files(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_unit_files(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
|
||||
_cleanup_hashmap_free_ Hashmap *h = NULL;
|
||||
_cleanup_free_ UnitFileList *units = NULL;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_list_unit_files(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_list_unit_files(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -258,7 +258,7 @@ static int output_units_list(const UnitInfo *unit_infos, size_t c) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_units(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_units(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
||||
_cleanup_set_free_ Set *replies = NULL;
|
||||
sd_bus *bus;
|
||||
@@ -490,7 +490,7 @@ static int output_sockets_list(const SocketInfo *sockets, size_t n_sockets) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_sockets(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_sockets(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_set_free_ Set *replies = NULL;
|
||||
_cleanup_strv_free_ char **sockets_with_suffix = NULL;
|
||||
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
||||
@@ -771,7 +771,7 @@ static int add_timer_info(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_timers(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_timers(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_set_free_ Set *replies = NULL;
|
||||
_cleanup_strv_free_ char **timers_with_suffix = NULL;
|
||||
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
||||
@@ -970,7 +970,7 @@ static int output_automounts_list(const AutomountInfo *infos, size_t n_infos) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_automounts(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_automounts(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_set_free_ Set *replies = NULL;
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
||||
@@ -1178,7 +1178,7 @@ static int output_paths_list(const PathInfo *paths, size_t n_paths) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_list_paths(int argc, char *argv[], void *userdata) {
|
||||
int verb_list_paths(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_set_free_ Set *replies = NULL;
|
||||
_cleanup_strv_free_ char **units = NULL;
|
||||
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
|
||||
#include "time-util.h"
|
||||
|
||||
int verb_list_units(int argc, char *argv[], void *userdata);
|
||||
int verb_list_sockets(int argc, char *argv[], void *userdata);
|
||||
int verb_list_timers(int argc, char *argv[], void *userdata);
|
||||
int verb_list_automounts(int argc, char *argv[], void *userdata);
|
||||
int verb_list_paths(int argc, char *argv[], void *userdata);
|
||||
int verb_list_units(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_list_sockets(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_list_timers(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_list_automounts(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_list_paths(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
usec_t calc_next_elapse(const dual_timestamp *nw, const dual_timestamp *next);
|
||||
|
||||
@@ -26,7 +26,7 @@ static void give_log_control1_hint(const char *name) {
|
||||
" See the %s for details.", link ?: "org.freedesktop.LogControl1(5) man page");
|
||||
}
|
||||
|
||||
int verb_log_setting(int argc, char *argv[], void *userdata) {
|
||||
int verb_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
sd_bus *bus;
|
||||
int r;
|
||||
|
||||
@@ -71,7 +71,7 @@ static int service_name_to_dbus(sd_bus *bus, const char *name, char **ret_dbus_n
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_service_log_setting(int argc, char *argv[], void *userdata) {
|
||||
int verb_service_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
sd_bus *bus;
|
||||
_cleanup_free_ char *unit = NULL, *dbus_name = NULL;
|
||||
int r;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_log_setting(int argc, char *argv[], void *userdata);
|
||||
int verb_service_log_setting(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_service_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "systemctl-util.h"
|
||||
#include "unit-name.h"
|
||||
|
||||
int verb_bind(int argc, char *argv[], void *userdata) {
|
||||
int verb_bind(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
_cleanup_free_ char *n = NULL;
|
||||
sd_bus *bus;
|
||||
@@ -48,7 +48,7 @@ int verb_bind(int argc, char *argv[], void *userdata) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_mount_image(int argc, char *argv[], void *userdata) {
|
||||
int verb_mount_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
const char *unit = argv[1], *src = argv[2], *dest = argv[3];
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_bind(int argc, char *argv[], void *userdata);
|
||||
int verb_mount_image(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_bind(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_mount_image(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "systemctl-util.h"
|
||||
#include "verbs.h"
|
||||
|
||||
int verb_preset_all(int argc, char *argv[], void *userdata) {
|
||||
int verb_preset_all(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
int r;
|
||||
|
||||
if (should_bypass("SYSTEMD_PRESET"))
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_preset_all(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_preset_all(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
#include "systemctl-trivial-method.h"
|
||||
#include "systemctl-util.h"
|
||||
|
||||
int verb_reset_failed(int argc, char *argv[], void *userdata) {
|
||||
int verb_reset_failed(int argc, char *argv[], uintptr_t data, void *userdata) {
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
sd_bus *bus;
|
||||
int r, q;
|
||||
|
||||
if (argc <= 1) /* Shortcut to trivial_method() if no argument is given */
|
||||
return verb_trivial_method(argc, argv, userdata);
|
||||
return verb_trivial_method(argc, argv, data, userdata);
|
||||
|
||||
r = acquire_bus(BUS_MANAGER, &bus);
|
||||
if (r < 0)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_reset_failed(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_reset_failed(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "systemctl-service-watchdogs.h"
|
||||
#include "systemctl-util.h"
|
||||
|
||||
int verb_service_watchdogs(int argc, char *argv[], void *userdata) {
|
||||
int verb_service_watchdogs(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
sd_bus *bus;
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
int b, r;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_service_watchdogs(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_service_watchdogs(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -88,7 +88,7 @@ static int determine_default(char **ret_name) {
|
||||
}
|
||||
}
|
||||
|
||||
int verb_get_default(int argc, char *argv[], void *userdata) {
|
||||
int verb_get_default(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_free_ char *name = NULL;
|
||||
int r;
|
||||
|
||||
@@ -103,7 +103,7 @@ int verb_get_default(int argc, char *argv[], void *userdata) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_set_default(int argc, char *argv[], void *userdata) {
|
||||
int verb_set_default(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_free_ char *unit = NULL;
|
||||
int r;
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_get_default(int argc, char *argv[], void *userdata);
|
||||
int verb_set_default(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_get_default(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_set_default(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -70,7 +70,7 @@ static int print_variable(const char *s) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_show_environment(int argc, char *argv[], void *userdata) {
|
||||
int verb_show_environment(int argc, char *argv[], uintptr_t _data, 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;
|
||||
const char *text;
|
||||
@@ -122,7 +122,7 @@ static void invalid_callback(const char *p, void *userdata) {
|
||||
log_debug("Ignoring invalid environment assignment \"%s\".", strnull(t));
|
||||
}
|
||||
|
||||
int verb_set_environment(int argc, char *argv[], void *userdata) {
|
||||
int verb_set_environment(int argc, char *argv[], uintptr_t _data, 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;
|
||||
const char *method;
|
||||
@@ -157,7 +157,7 @@ int verb_set_environment(int argc, char *argv[], void *userdata) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_import_environment(int argc, char *argv[], void *userdata) {
|
||||
int verb_import_environment(int argc, char *argv[], uintptr_t _data, 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;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_show_environment(int argc, char *argv[], void *userdata);
|
||||
int verb_set_environment(int argc, char *argv[], void *userdata);
|
||||
int verb_import_environment(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_show_environment(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_set_environment(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_import_environment(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -51,7 +51,7 @@ static int set_property_one(sd_bus *bus, const char *name, char **properties) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_set_property(int argc, char *argv[], void *userdata) {
|
||||
int verb_set_property(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
sd_bus *bus;
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
int r;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_set_property(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_set_property(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -2482,7 +2482,7 @@ static int show_system_status(sd_bus *bus) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_show(int argc, char *argv[], void *userdata) {
|
||||
int verb_show(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
bool new_line = false, ellipsized = false;
|
||||
SystemctlShowMode show_mode;
|
||||
int r, ret = 0;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_show(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_show(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -127,7 +127,7 @@ static int set_exit_code(uint8_t code) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verb_start_special(int argc, char *argv[], void *userdata) {
|
||||
int verb_start_special(int argc, char *argv[], uintptr_t data, void *userdata) {
|
||||
bool termination_action; /* An action that terminates the system, can be performed also by signal. */
|
||||
enum action a;
|
||||
int r;
|
||||
@@ -198,7 +198,7 @@ int verb_start_special(int argc, char *argv[], void *userdata) {
|
||||
|
||||
if (arg_force >= 1 &&
|
||||
(termination_action || IN_SET(a, ACTION_KEXEC, ACTION_EXIT)))
|
||||
r = verb_trivial_method(argc, argv, userdata);
|
||||
r = verb_trivial_method(argc, argv, data, userdata);
|
||||
else {
|
||||
/* First try logind, to allow authentication with polkit */
|
||||
switch (a) {
|
||||
@@ -255,7 +255,7 @@ int verb_start_special(int argc, char *argv[], void *userdata) {
|
||||
;
|
||||
}
|
||||
|
||||
r = verb_start(argc, argv, userdata);
|
||||
r = verb_start(argc, argv, data, userdata);
|
||||
}
|
||||
|
||||
if (termination_action && arg_force < 2 &&
|
||||
@@ -265,7 +265,7 @@ int verb_start_special(int argc, char *argv[], void *userdata) {
|
||||
return r;
|
||||
}
|
||||
|
||||
int verb_start_system_special(int argc, char *argv[], void *userdata) {
|
||||
int verb_start_system_special(int argc, char *argv[], uintptr_t data, void *userdata) {
|
||||
/* Like start_special above, but raises an error when running in user mode */
|
||||
|
||||
if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM)
|
||||
@@ -273,5 +273,5 @@ int verb_start_system_special(int argc, char *argv[], void *userdata) {
|
||||
"Bad action for %s mode.",
|
||||
runtime_scope_cmdline_option_to_string(arg_runtime_scope));
|
||||
|
||||
return verb_start_special(argc, argv, userdata);
|
||||
return verb_start_special(argc, argv, data, userdata);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_start_special(int argc, char *argv[], void *userdata);
|
||||
int verb_start_system_special(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_start_special(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
int verb_start_system_special(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -289,7 +289,7 @@ static const char** make_extra_args(const char *extra_args[static 4]) {
|
||||
return extra_args;
|
||||
}
|
||||
|
||||
int verb_start(int argc, char *argv[], void *userdata) {
|
||||
int verb_start(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(bus_wait_for_units_freep) BusWaitForUnits *wu = NULL;
|
||||
_cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL;
|
||||
const char *method, *job_type, *mode, *one_name, *suffix = NULL;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "systemctl.h"
|
||||
|
||||
int verb_start(int argc, char *argv[], void *userdata);
|
||||
int verb_start(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
struct action_metadata {
|
||||
const char *target;
|
||||
|
||||
@@ -38,7 +38,7 @@ static int same_file_in_root(
|
||||
return stat_inode_same(&sta, &stb);
|
||||
}
|
||||
|
||||
int verb_switch_root(int argc, char *argv[], void *userdata) {
|
||||
int verb_switch_root(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
_cleanup_free_ char *cmdline_init = NULL;
|
||||
const char *root, *init;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_switch_root(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_switch_root(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/* A generic implementation for cases we just need to invoke a simple method call on the Manager object. */
|
||||
|
||||
int verb_trivial_method(int argc, char *argv[], void *userdata) {
|
||||
int verb_trivial_method(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
const char *method;
|
||||
sd_bus *bus;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_trivial_method(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_trivial_method(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "systemctl-util.h"
|
||||
#include "systemctl-whoami.h"
|
||||
|
||||
int verb_whoami(int argc, char *argv[], void *userdata) {
|
||||
int verb_whoami(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
sd_bus *bus;
|
||||
int r, ret = 0;
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
int verb_whoami(int argc, char *argv[], void *userdata);
|
||||
#include "shared-forward.h"
|
||||
|
||||
int verb_whoami(int argc, char *argv[], uintptr_t _data, void *userdata);
|
||||
|
||||
Reference in New Issue
Block a user