diff --git a/src/analyze/analyze-condition.c b/src/analyze/analyze-condition.c index b29fc0cd71..6da61cd0cf 100644 --- a/src/analyze/analyze-condition.c +++ b/src/analyze/analyze-condition.c @@ -72,7 +72,7 @@ static int log_helper(void *userdata, int level, int error, const char *file, in return r; } -static int verify_conditions(char **lines, LookupScope scope, const char *unit, const char *root) { +static int verify_conditions(char **lines, RuntimeScope scope, const char *unit, const char *root) { _cleanup_(manager_freep) Manager *m = NULL; Unit *u; int r, q = 1; @@ -137,7 +137,7 @@ static int verify_conditions(char **lines, LookupScope scope, const char *unit, int verb_condition(int argc, char *argv[], void *userdata) { int r; - r = verify_conditions(strv_skip(argv, 1), arg_scope, arg_unit, arg_root); + r = verify_conditions(strv_skip(argv, 1), arg_runtime_scope, arg_unit, arg_root); if (r < 0) return r; diff --git a/src/analyze/analyze-plot.c b/src/analyze/analyze-plot.c index 8aca691b3d..0f39484f92 100644 --- a/src/analyze/analyze-plot.c +++ b/src/analyze/analyze-plot.c @@ -80,8 +80,8 @@ static int acquire_host_info(sd_bus *bus, HostInfo **hi) { if (!host) return log_oom(); - if (arg_scope != LOOKUP_SCOPE_SYSTEM) { - r = bus_connect_transport(arg_transport, arg_host, false, &system_bus); + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) { + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, &system_bus); if (r < 0) { log_debug_errno(r, "Failed to connect to system bus, ignoring: %m"); goto manager; @@ -431,7 +431,7 @@ int verb_plot(int argc, char *argv[], void *userdata) { _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL; _cleanup_(unit_times_free_arrayp) UnitTimes *times = NULL; _cleanup_free_ char *pretty_times = NULL; - bool use_full_bus = arg_scope == LOOKUP_SCOPE_SYSTEM; + bool use_full_bus = arg_runtime_scope == RUNTIME_SCOPE_SYSTEM; BootTimes *boot; int n, r; @@ -447,7 +447,7 @@ int verb_plot(int argc, char *argv[], void *userdata) { if (n < 0) return n; - if (use_full_bus || arg_scope != LOOKUP_SCOPE_SYSTEM) { + if (use_full_bus || arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) { n = acquire_host_info(bus, &host); if (n < 0) return n; diff --git a/src/analyze/analyze-security.c b/src/analyze/analyze-security.c index 585dd01f68..7662bf1827 100644 --- a/src/analyze/analyze-security.c +++ b/src/analyze/analyze-security.c @@ -2665,16 +2665,17 @@ static int offline_security_check(Unit *u, return assess(info, overview_table, flags, threshold, policy, pager_flags, json_format_flags); } -static int offline_security_checks(char **filenames, - JsonVariant *policy, - LookupScope scope, - bool check_man, - bool run_generators, - unsigned threshold, - const char *root, - const char *profile, - PagerFlags pager_flags, - JsonFormatFlags json_format_flags) { +static int offline_security_checks( + char **filenames, + JsonVariant *policy, + RuntimeScope scope, + bool check_man, + bool run_generators, + unsigned threshold, + const char *root, + const char *profile, + PagerFlags pager_flags, + JsonFormatFlags json_format_flags) { const ManagerTestRunFlags flags = MANAGER_TEST_RUN_MINIMAL | @@ -2779,7 +2780,7 @@ static int offline_security_checks(char **filenames, static int analyze_security(sd_bus *bus, char **units, JsonVariant *policy, - LookupScope scope, + RuntimeScope scope, bool check_man, bool run_generators, bool offline, @@ -2937,17 +2938,18 @@ int verb_security(int argc, char *argv[], void *userdata) { } } - return analyze_security(bus, - strv_skip(argv, 1), - policy, - arg_scope, - arg_man, - arg_generators, - arg_offline, - arg_threshold, - arg_root, - arg_profile, - arg_json_format_flags, - arg_pager_flags, - /*flags=*/ 0); + return analyze_security( + bus, + strv_skip(argv, 1), + policy, + arg_runtime_scope, + arg_man, + arg_generators, + arg_offline, + arg_threshold, + arg_root, + arg_profile, + arg_json_format_flags, + arg_pager_flags, + /*flags=*/ 0); } diff --git a/src/analyze/analyze-time-data.c b/src/analyze/analyze-time-data.c index aa42d69322..07843f74bc 100644 --- a/src/analyze/analyze-time-data.c +++ b/src/analyze/analyze-time-data.c @@ -67,9 +67,9 @@ int acquire_boot_times(sd_bus *bus, BootTimes **ret) { "Please try again later.\n" "Hint: Use 'systemctl%s list-jobs' to see active jobs", times.finish_time, - arg_scope == LOOKUP_SCOPE_SYSTEM ? "" : " --user"); + arg_runtime_scope == RUNTIME_SCOPE_SYSTEM ? "" : " --user"); - if (arg_scope == LOOKUP_SCOPE_SYSTEM && times.security_start_time > 0) { + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM && times.security_start_time > 0) { /* security_start_time is set when systemd is not running under container environment. */ if (times.initrd_time > 0) times.kernel_done_time = times.initrd_time; diff --git a/src/analyze/analyze-unit-files.c b/src/analyze/analyze-unit-files.c index ec9be336e1..d9b3313be4 100644 --- a/src/analyze/analyze-unit-files.c +++ b/src/analyze/analyze-unit-files.c @@ -21,7 +21,7 @@ int verb_unit_files(int argc, char *argv[], void *userdata) { char **v; int r; - r = lookup_paths_init_or_warn(&lp, arg_scope, 0, NULL); + r = lookup_paths_init_or_warn(&lp, arg_runtime_scope, 0, NULL); if (r < 0) return r; diff --git a/src/analyze/analyze-unit-paths.c b/src/analyze/analyze-unit-paths.c index c2254619bc..bb00a4fcd2 100644 --- a/src/analyze/analyze-unit-paths.c +++ b/src/analyze/analyze-unit-paths.c @@ -9,7 +9,7 @@ int verb_unit_paths(int argc, char *argv[], void *userdata) { _cleanup_(lookup_paths_free) LookupPaths paths = {}; int r; - r = lookup_paths_init_or_warn(&paths, arg_scope, 0, NULL); + r = lookup_paths_init_or_warn(&paths, arg_runtime_scope, 0, NULL); if (r < 0) return r; diff --git a/src/analyze/analyze-verify-util.c b/src/analyze/analyze-verify-util.c index b9f08b6d85..132a84649b 100644 --- a/src/analyze/analyze-verify-util.c +++ b/src/analyze/analyze-verify-util.c @@ -248,7 +248,14 @@ static void set_destroy_ignore_pointer_max(Set** s) { set_free_free(*s); } -int verify_units(char **filenames, LookupScope scope, bool check_man, bool run_generators, RecursiveErrors recursive_errors, const char *root) { +int verify_units( + char **filenames, + RuntimeScope scope, + bool check_man, + bool run_generators, + RecursiveErrors recursive_errors, + const char *root) { + const ManagerTestRunFlags flags = MANAGER_TEST_RUN_MINIMAL | MANAGER_TEST_RUN_ENV_GENERATORS | diff --git a/src/analyze/analyze-verify-util.h b/src/analyze/analyze-verify-util.h index 385d635e33..2e3b0604c3 100644 --- a/src/analyze/analyze-verify-util.h +++ b/src/analyze/analyze-verify-util.h @@ -17,7 +17,7 @@ typedef enum RecursiveErrors { int verify_generate_path(char **var, char **filenames); int verify_prepare_filename(const char *filename, char **ret); int verify_executable(Unit *u, const ExecCommand *exec, const char *root); -int verify_units(char **filenames, LookupScope scope, bool check_man, bool run_generators, RecursiveErrors recursive_errors, const char *root); +int verify_units(char **filenames, RuntimeScope scope, bool check_man, bool run_generators, RecursiveErrors recursive_errors, const char *root); const char* recursive_errors_to_string(RecursiveErrors i) _const_; RecursiveErrors recursive_errors_from_string(const char *s) _pure_; diff --git a/src/analyze/analyze-verify.c b/src/analyze/analyze-verify.c index 35e4e1eb31..98d48f6276 100644 --- a/src/analyze/analyze-verify.c +++ b/src/analyze/analyze-verify.c @@ -66,5 +66,5 @@ int verb_verify(int argc, char *argv[], void *userdata) { if (r < 0) return log_error_errno(r, "Couldn't process aliases: %m"); - return verify_units(filenames, arg_scope, arg_man, arg_generators, arg_recursive_errors, arg_root); + return verify_units(filenames, arg_runtime_scope, arg_man, arg_generators, arg_recursive_errors, arg_root); } diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index d7688c1a85..12c0bd653f 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -91,7 +91,7 @@ usec_t arg_fuzz = 0; PagerFlags arg_pager_flags = 0; BusTransport arg_transport = BUS_TRANSPORT_LOCAL; const char *arg_host = NULL; -LookupScope arg_scope = LOOKUP_SCOPE_SYSTEM; +RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; RecursiveErrors arg_recursive_errors = _RECURSIVE_ERRORS_INVALID; bool arg_man = true; bool arg_generators = false; @@ -118,18 +118,17 @@ STATIC_DESTRUCTOR_REGISTER(arg_unit, freep); STATIC_DESTRUCTOR_REGISTER(arg_profile, freep); int acquire_bus(sd_bus **bus, bool *use_full_bus) { - bool user = arg_scope != LOOKUP_SCOPE_SYSTEM; int r; if (use_full_bus && *use_full_bus) { - r = bus_connect_transport(arg_transport, arg_host, user, bus); + r = bus_connect_transport(arg_transport, arg_host, arg_runtime_scope, bus); if (IN_SET(r, 0, -EHOSTDOWN)) return r; *use_full_bus = false; } - return bus_connect_transport_systemd(arg_transport, arg_host, user, bus); + return bus_connect_transport_systemd(arg_transport, arg_host, arg_runtime_scope, bus); } int bus_get_unit_property_strv(sd_bus *bus, const char *path, const char *property, char ***strv) { @@ -384,15 +383,15 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_SYSTEM: - arg_scope = LOOKUP_SCOPE_SYSTEM; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; break; case ARG_USER: - arg_scope = LOOKUP_SCOPE_USER; + arg_runtime_scope = RUNTIME_SCOPE_USER; break; case ARG_GLOBAL: - arg_scope = LOOKUP_SCOPE_GLOBAL; + arg_runtime_scope = RUNTIME_SCOPE_GLOBAL; break; case ARG_ORDER: @@ -540,12 +539,12 @@ static int parse_argv(int argc, char *argv[]) { return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Option --threshold= is only supported for security right now."); - if (arg_scope == LOOKUP_SCOPE_GLOBAL && + if (arg_runtime_scope == RUNTIME_SCOPE_GLOBAL && !STR_IN_SET(argv[optind] ?: "time", "dot", "unit-paths", "verify")) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Option --global only makes sense with verbs dot, unit-paths, verify."); - if (streq_ptr(argv[optind], "cat-config") && arg_scope == LOOKUP_SCOPE_USER) + if (streq_ptr(argv[optind], "cat-config") && arg_runtime_scope == RUNTIME_SCOPE_USER) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Option --user is not supported for cat-config right now."); diff --git a/src/analyze/analyze.h b/src/analyze/analyze.h index 35b1cddb38..2f623e3201 100644 --- a/src/analyze/analyze.h +++ b/src/analyze/analyze.h @@ -22,7 +22,7 @@ extern usec_t arg_fuzz; extern PagerFlags arg_pager_flags; extern BusTransport arg_transport; extern const char *arg_host; -extern LookupScope arg_scope; +extern RuntimeScope arg_runtime_scope; extern RecursiveErrors arg_recursive_errors; extern bool arg_man; extern bool arg_generators; diff --git a/src/basic/meson.build b/src/basic/meson.build index b9da0544c2..98b4d0ee95 100644 --- a/src/basic/meson.build +++ b/src/basic/meson.build @@ -71,6 +71,7 @@ basic_sources = files( 'recurse-dir.c', 'replace-var.c', 'rlimit-util.c', + 'runtime-scope.c', 'sigbus.c', 'signal-util.c', 'siphash24.c', diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c index c99e9d8786..7d158a8295 100644 --- a/src/basic/path-lookup.c +++ b/src/basic/path-lookup.c @@ -232,7 +232,7 @@ bool path_is_user_config_dir(const char *path) { } static int acquire_generator_dirs( - LookupScope scope, + RuntimeScope scope, const char *tempdir, char **generator, char **generator_early, @@ -244,17 +244,17 @@ static int acquire_generator_dirs( assert(generator); assert(generator_early); assert(generator_late); - assert(IN_SET(scope, LOOKUP_SCOPE_SYSTEM, LOOKUP_SCOPE_USER, LOOKUP_SCOPE_GLOBAL)); + assert(IN_SET(scope, RUNTIME_SCOPE_SYSTEM, RUNTIME_SCOPE_USER, RUNTIME_SCOPE_GLOBAL)); - if (scope == LOOKUP_SCOPE_GLOBAL) + if (scope == RUNTIME_SCOPE_GLOBAL) return -EOPNOTSUPP; if (tempdir) prefix = tempdir; - else if (scope == LOOKUP_SCOPE_SYSTEM) + else if (scope == RUNTIME_SCOPE_SYSTEM) prefix = "/run/systemd"; else { - /* LOOKUP_SCOPE_USER */ + /* RUNTIME_SCOPE_USER */ const char *e; e = getenv("XDG_RUNTIME_DIR"); @@ -288,21 +288,21 @@ static int acquire_generator_dirs( } static int acquire_transient_dir( - LookupScope scope, + RuntimeScope scope, const char *tempdir, char **ret) { char *transient; assert(ret); - assert(IN_SET(scope, LOOKUP_SCOPE_SYSTEM, LOOKUP_SCOPE_USER, LOOKUP_SCOPE_GLOBAL)); + assert(IN_SET(scope, RUNTIME_SCOPE_SYSTEM, RUNTIME_SCOPE_USER, RUNTIME_SCOPE_GLOBAL)); - if (scope == LOOKUP_SCOPE_GLOBAL) + if (scope == RUNTIME_SCOPE_GLOBAL) return -EOPNOTSUPP; if (tempdir) transient = path_join(tempdir, "transient"); - else if (scope == LOOKUP_SCOPE_SYSTEM) + else if (scope == RUNTIME_SCOPE_SYSTEM) transient = strdup("/run/systemd/transient"); else return xdg_user_runtime_dir(ret, "/systemd/transient"); @@ -313,7 +313,7 @@ static int acquire_transient_dir( return 0; } -static int acquire_config_dirs(LookupScope scope, char **persistent, char **runtime) { +static int acquire_config_dirs(RuntimeScope scope, char **persistent, char **runtime) { _cleanup_free_ char *a = NULL, *b = NULL; int r; @@ -322,17 +322,17 @@ static int acquire_config_dirs(LookupScope scope, char **persistent, char **runt switch (scope) { - case LOOKUP_SCOPE_SYSTEM: + case RUNTIME_SCOPE_SYSTEM: a = strdup(SYSTEM_CONFIG_UNIT_DIR); b = strdup("/run/systemd/system"); break; - case LOOKUP_SCOPE_GLOBAL: + case RUNTIME_SCOPE_GLOBAL: a = strdup(USER_CONFIG_UNIT_DIR); b = strdup("/run/systemd/user"); break; - case LOOKUP_SCOPE_USER: + case RUNTIME_SCOPE_USER: r = xdg_user_config_dir(&a, "/systemd/user"); if (r < 0 && r != -ENXIO) return r; @@ -364,7 +364,7 @@ static int acquire_config_dirs(LookupScope scope, char **persistent, char **runt return 0; } -static int acquire_control_dirs(LookupScope scope, char **persistent, char **runtime) { +static int acquire_control_dirs(RuntimeScope scope, char **persistent, char **runtime) { _cleanup_free_ char *a = NULL; int r; @@ -373,7 +373,7 @@ static int acquire_control_dirs(LookupScope scope, char **persistent, char **run switch (scope) { - case LOOKUP_SCOPE_SYSTEM: { + case RUNTIME_SCOPE_SYSTEM: { _cleanup_free_ char *b = NULL; a = strdup("/etc/systemd/system.control"); @@ -389,7 +389,7 @@ static int acquire_control_dirs(LookupScope scope, char **persistent, char **run break; } - case LOOKUP_SCOPE_USER: + case RUNTIME_SCOPE_USER: r = xdg_user_config_dir(&a, "/systemd/user.control"); if (r < 0 && r != -ENXIO) return r; @@ -406,7 +406,7 @@ static int acquire_control_dirs(LookupScope scope, char **persistent, char **run break; - case LOOKUP_SCOPE_GLOBAL: + case RUNTIME_SCOPE_GLOBAL: return -EOPNOTSUPP; default: @@ -419,7 +419,7 @@ static int acquire_control_dirs(LookupScope scope, char **persistent, char **run } static int acquire_attached_dirs( - LookupScope scope, + RuntimeScope scope, char **ret_persistent, char **ret_runtime) { @@ -429,7 +429,7 @@ static int acquire_attached_dirs( assert(ret_runtime); /* Portable services are not available to regular users for now. */ - if (scope != LOOKUP_SCOPE_SYSTEM) + if (scope != RUNTIME_SCOPE_SYSTEM) return -EOPNOTSUPP; a = strdup("/etc/systemd/system.attached"); @@ -509,7 +509,7 @@ static int get_paths_from_environ(const char *var, char ***paths, bool *append) int lookup_paths_init( LookupPaths *lp, - LookupScope scope, + RuntimeScope scope, LookupPathsFlags flags, const char *root_dir) { @@ -528,14 +528,14 @@ int lookup_paths_init( assert(lp); assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); #if HAVE_SPLIT_USR flags |= LOOKUP_PATHS_SPLIT_USR; #endif if (!empty_or_root(root_dir)) { - if (scope == LOOKUP_SCOPE_USER) + if (scope == RUNTIME_SCOPE_USER) return -EINVAL; r = is_dir(root_dir, true); @@ -560,8 +560,8 @@ int lookup_paths_init( if (r < 0) return r; - if (scope == LOOKUP_SCOPE_USER) { - r = acquire_config_dirs(LOOKUP_SCOPE_GLOBAL, &global_persistent_config, &global_runtime_config); + if (scope == RUNTIME_SCOPE_USER) { + r = acquire_config_dirs(RUNTIME_SCOPE_GLOBAL, &global_persistent_config, &global_runtime_config); if (r < 0) return r; } @@ -606,7 +606,7 @@ int lookup_paths_init( switch (scope) { - case LOOKUP_SCOPE_SYSTEM: + case RUNTIME_SCOPE_SYSTEM: add = strv_new( /* If you modify this you also want to modify * systemdsystemunitpath= in systemd.pc.in! */ @@ -629,7 +629,7 @@ int lookup_paths_init( STRV_IFNOTNULL(generator_late)); break; - case LOOKUP_SCOPE_GLOBAL: + case RUNTIME_SCOPE_GLOBAL: add = strv_new( /* If you modify this you also want to modify * systemduserunitpath= in systemd.pc.in, and @@ -652,7 +652,7 @@ int lookup_paths_init( STRV_IFNOTNULL(generator_late)); break; - case LOOKUP_SCOPE_USER: + case RUNTIME_SCOPE_USER: add = user_dirs(persistent_config, runtime_config, global_persistent_config, global_runtime_config, generator, generator_early, generator_late, @@ -741,7 +741,7 @@ int lookup_paths_init( return 0; } -int lookup_paths_init_or_warn(LookupPaths *lp, LookupScope scope, LookupPathsFlags flags, const char *root_dir) { +int lookup_paths_init_or_warn(LookupPaths *lp, RuntimeScope scope, LookupPathsFlags flags, const char *root_dir) { int r; r = lookup_paths_init(lp, scope, flags, root_dir); @@ -790,7 +790,7 @@ void lookup_paths_log(LookupPaths *lp) { } } -char **generator_binary_paths(LookupScope scope) { +char **generator_binary_paths(RuntimeScope scope) { bool append = false; /* Add items from SYSTEMD_GENERATOR_PATH before normal directories */ _cleanup_strv_free_ char **paths = NULL; int r; @@ -805,15 +805,15 @@ char **generator_binary_paths(LookupScope scope) { switch (scope) { - case LOOKUP_SCOPE_SYSTEM: + case RUNTIME_SCOPE_SYSTEM: add = strv_new("/run/systemd/system-generators", "/etc/systemd/system-generators", "/usr/local/lib/systemd/system-generators", SYSTEM_GENERATOR_DIR); break; - case LOOKUP_SCOPE_GLOBAL: - case LOOKUP_SCOPE_USER: + case RUNTIME_SCOPE_GLOBAL: + case RUNTIME_SCOPE_USER: add = strv_new("/run/systemd/user-generators", "/etc/systemd/user-generators", "/usr/local/lib/systemd/user-generators", @@ -823,7 +823,6 @@ char **generator_binary_paths(LookupScope scope) { default: assert_not_reached(); } - if (!add) return NULL; @@ -840,10 +839,9 @@ char **generator_binary_paths(LookupScope scope) { return TAKE_PTR(paths); } -char **env_generator_binary_paths(bool is_system) { +char **env_generator_binary_paths(RuntimeScope runtime_scope) { + _cleanup_strv_free_ char **paths = NULL, **add = NULL; bool append = false; /* Add items from SYSTEMD_ENVIRONMENT_GENERATOR_PATH before normal directories */ - _cleanup_strv_free_ char **paths = NULL; - _cleanup_strv_free_ char **add = NULL; int r; /* First priority is whatever has been passed to us via env vars */ @@ -852,17 +850,25 @@ char **env_generator_binary_paths(bool is_system) { return NULL; if (!paths || append) { - if (is_system) + switch (runtime_scope) { + + case RUNTIME_SCOPE_SYSTEM: add = strv_new("/run/systemd/system-environment-generators", "/etc/systemd/system-environment-generators", "/usr/local/lib/systemd/system-environment-generators", SYSTEM_ENV_GENERATOR_DIR); - else + break; + + case RUNTIME_SCOPE_USER: add = strv_new("/run/systemd/user-environment-generators", "/etc/systemd/user-environment-generators", "/usr/local/lib/systemd/user-environment-generators", USER_ENV_GENERATOR_DIR); + break; + default: + assert_not_reached(); + } if (!add) return NULL; } diff --git a/src/basic/path-lookup.h b/src/basic/path-lookup.h index 46eb32c4b0..6d6163fb9d 100644 --- a/src/basic/path-lookup.h +++ b/src/basic/path-lookup.h @@ -5,6 +5,7 @@ #include "constants.h" #include "macro.h" +#include "runtime-scope.h" typedef enum LookupPathsFlags { LOOKUP_PATHS_EXCLUDE_GENERATED = 1 << 0, @@ -12,14 +13,6 @@ typedef enum LookupPathsFlags { LOOKUP_PATHS_SPLIT_USR = 1 << 2, } LookupPathsFlags; -typedef enum LookupScope { - LOOKUP_SCOPE_SYSTEM, - LOOKUP_SCOPE_GLOBAL, - LOOKUP_SCOPE_USER, - _LOOKUP_SCOPE_MAX, - _LOOKUP_SCOPE_INVALID = -EINVAL, -} LookupScope; - typedef struct LookupPaths { /* Where we look for unit files. This includes the individual special paths below, but also any vendor * supplied, static unit file paths. */ @@ -59,8 +52,8 @@ typedef struct LookupPaths { char *temporary_dir; } LookupPaths; -int lookup_paths_init(LookupPaths *lp, LookupScope scope, LookupPathsFlags flags, const char *root_dir); -int lookup_paths_init_or_warn(LookupPaths *lp, LookupScope scope, LookupPathsFlags flags, const char *root_dir); +int lookup_paths_init(LookupPaths *lp, RuntimeScope scope, LookupPathsFlags flags, const char *root_dir); +int lookup_paths_init_or_warn(LookupPaths *lp, RuntimeScope scope, LookupPathsFlags flags, const char *root_dir); int xdg_user_dirs(char ***ret_config_dirs, char ***ret_data_dirs); int xdg_user_runtime_dir(char **ret, const char *suffix); @@ -73,8 +66,8 @@ bool path_is_user_config_dir(const char *path); void lookup_paths_log(LookupPaths *p); void lookup_paths_free(LookupPaths *p); -char **generator_binary_paths(LookupScope scope); -char **env_generator_binary_paths(bool is_system); +char **generator_binary_paths(RuntimeScope scope); +char **env_generator_binary_paths(RuntimeScope scope); #define NETWORK_DIRS ((const char* const*) CONF_PATHS_STRV("systemd/network")) #define NETWORK_DIRS_NULSTR CONF_PATHS_NULSTR("systemd/network") diff --git a/src/basic/runtime-scope.c b/src/basic/runtime-scope.c new file mode 100644 index 0000000000..88afb53d0b --- /dev/null +++ b/src/basic/runtime-scope.c @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "runtime-scope.h" +#include "string-table.h" + +static const char* const runtime_scope_table[_RUNTIME_SCOPE_MAX] = { + [RUNTIME_SCOPE_SYSTEM] = "system", + [RUNTIME_SCOPE_USER] = "user", + [RUNTIME_SCOPE_GLOBAL] = "global", +}; + +DEFINE_STRING_TABLE_LOOKUP(runtime_scope, RuntimeScope); diff --git a/src/basic/runtime-scope.h b/src/basic/runtime-scope.h new file mode 100644 index 0000000000..6a7f9e65d4 --- /dev/null +++ b/src/basic/runtime-scope.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#include + +#include "macro.h" + +typedef enum RuntimeScope { + RUNTIME_SCOPE_SYSTEM, /* for the system */ + RUNTIME_SCOPE_USER, /* for a user */ + RUNTIME_SCOPE_GLOBAL, /* for all users */ + _RUNTIME_SCOPE_MAX, + _RUNTIME_SCOPE_INVALID = -EINVAL, +} RuntimeScope; + +const char *runtime_scope_to_string(RuntimeScope scope) _const_; +RuntimeScope runtime_scope_from_string(const char *s) _const_; diff --git a/src/busctl/busctl.c b/src/busctl/busctl.c index 87becdbc7e..e176710dfa 100644 --- a/src/busctl/busctl.c +++ b/src/busctl/busctl.c @@ -27,6 +27,7 @@ #include "parse-util.h" #include "path-util.h" #include "pretty-print.h" +#include "runtime-scope.h" #include "set.h" #include "sort-util.h" #include "strv.h" @@ -47,7 +48,7 @@ static bool arg_show_machine = false; static char **arg_matches = NULL; static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; static const char *arg_host = NULL; -static bool arg_user = false; +static RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; static size_t arg_snaplen = 4096; static bool arg_list = false; static bool arg_quiet = false; @@ -109,10 +110,21 @@ static int acquire_bus(bool set_monitor, sd_bus **ret) { switch (arg_transport) { case BUS_TRANSPORT_LOCAL: - if (arg_user) + + switch (arg_runtime_scope) { + + case RUNTIME_SCOPE_USER: r = bus_set_address_user(bus); - else + break; + + case RUNTIME_SCOPE_SYSTEM: r = bus_set_address_system(bus); + break; + + default: + assert_not_reached(); + } + break; case BUS_TRANSPORT_REMOTE: @@ -120,7 +132,7 @@ static int acquire_bus(bool set_monitor, sd_bus **ret) { break; case BUS_TRANSPORT_MACHINE: - r = bus_set_address_machine(bus, arg_user, arg_host); + r = bus_set_address_machine(bus, arg_runtime_scope, arg_host); break; default: @@ -2405,11 +2417,11 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_USER: - arg_user = true; + arg_runtime_scope = RUNTIME_SCOPE_USER; break; case ARG_SYSTEM: - arg_user = false; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; break; case ARG_ADDRESS: diff --git a/src/cgls/cgls.c b/src/cgls/cgls.c index a6ec6326f3..d6703634e1 100644 --- a/src/cgls/cgls.c +++ b/src/cgls/cgls.c @@ -215,9 +215,10 @@ static int run(int argc, char *argv[]) { if (!bus) { /* Connect to the bus only if necessary */ - r = bus_connect_transport_systemd(BUS_TRANSPORT_LOCAL, NULL, - arg_show_unit == SHOW_UNIT_USER, - &bus); + r = bus_connect_transport_systemd( + BUS_TRANSPORT_LOCAL, NULL, + arg_show_unit == SHOW_UNIT_USER ? RUNTIME_SCOPE_USER : RUNTIME_SCOPE_SYSTEM, + &bus); if (r < 0) return bus_log_connect_error(r, BUS_TRANSPORT_LOCAL); } diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 6dd75d9e93..242a662bca 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -2113,7 +2113,7 @@ static int list_unit_files_by_patterns(sd_bus_message *message, void *userdata, if (!h) return -ENOMEM; - r = unit_file_get_list(m->unit_file_scope, NULL, h, states, patterns); + r = unit_file_get_list(m->runtime_scope, NULL, h, states, patterns); if (r < 0) goto fail; @@ -2179,7 +2179,7 @@ static int method_get_unit_file_state(sd_bus_message *message, void *userdata, s if (r < 0) return r; - r = unit_file_get_state(m->unit_file_scope, NULL, name, &state); + r = unit_file_get_state(m->runtime_scope, NULL, name, &state); if (r < 0) return r; @@ -2199,7 +2199,7 @@ static int method_get_default_target(sd_bus_message *message, void *userdata, sd if (r < 0) return r; - r = unit_file_get_default(m->unit_file_scope, NULL, &default_target); + r = unit_file_get_default(m->runtime_scope, NULL, &default_target); if (r == -ERFKILL) sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit file is masked."); if (r < 0) @@ -2392,7 +2392,7 @@ static int reply_install_changes_and_free( static int method_enable_unit_files_generic( sd_bus_message *message, Manager *m, - int (*call)(LookupScope scope, UnitFileFlags flags, const char *root_dir, char *files[], InstallChange **changes, size_t *n_changes), + int (*call)(RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char *files[], InstallChange **changes, size_t *n_changes), bool carries_install_info, sd_bus_error *error) { @@ -2433,7 +2433,7 @@ static int method_enable_unit_files_generic( if (r == 0) return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - r = call(m->unit_file_scope, flags, NULL, l, &changes, &n_changes); + r = call(m->runtime_scope, flags, NULL, l, &changes, &n_changes); if (r < 0) return install_error(error, r, changes, n_changes); @@ -2456,7 +2456,7 @@ static int method_link_unit_files(sd_bus_message *message, void *userdata, sd_bu return method_enable_unit_files_generic(message, userdata, unit_file_link, /* carries_install_info = */ false, error); } -static int unit_file_preset_without_mode(LookupScope scope, UnitFileFlags flags, const char *root_dir, char **files, InstallChange **changes, size_t *n_changes) { +static int unit_file_preset_without_mode(RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **files, InstallChange **changes, size_t *n_changes) { return unit_file_preset(scope, flags, root_dir, files, UNIT_FILE_PRESET_FULL, changes, n_changes); } @@ -2505,7 +2505,7 @@ static int method_preset_unit_files_with_mode(sd_bus_message *message, void *use if (r == 0) return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - r = unit_file_preset(m->unit_file_scope, flags, NULL, l, preset_mode, &changes, &n_changes); + r = unit_file_preset(m->runtime_scope, flags, NULL, l, preset_mode, &changes, &n_changes); if (r < 0) return install_error(error, r, changes, n_changes); @@ -2515,7 +2515,7 @@ static int method_preset_unit_files_with_mode(sd_bus_message *message, void *use static int method_disable_unit_files_generic( sd_bus_message *message, Manager *m, - int (*call)(LookupScope scope, UnitFileFlags flags, const char *root_dir, char *files[], InstallChange **changes, size_t *n_changes), + int (*call)(RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char *files[], InstallChange **changes, size_t *n_changes), bool carries_install_info, sd_bus_error *error) { @@ -2558,7 +2558,7 @@ static int method_disable_unit_files_generic( if (r == 0) return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - r = call(m->unit_file_scope, flags, NULL, l, &changes, &n_changes); + r = call(m->runtime_scope, flags, NULL, l, &changes, &n_changes); if (r < 0) return install_error(error, r, changes, n_changes); @@ -2600,7 +2600,7 @@ static int method_revert_unit_files(sd_bus_message *message, void *userdata, sd_ if (r == 0) return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - r = unit_file_revert(m->unit_file_scope, NULL, l, &changes, &n_changes); + r = unit_file_revert(m->runtime_scope, NULL, l, &changes, &n_changes); if (r < 0) return install_error(error, r, changes, n_changes); @@ -2630,7 +2630,7 @@ static int method_set_default_target(sd_bus_message *message, void *userdata, sd if (r == 0) return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - r = unit_file_set_default(m->unit_file_scope, force ? UNIT_FILE_FORCE : 0, NULL, name, &changes, &n_changes); + r = unit_file_set_default(m->runtime_scope, force ? UNIT_FILE_FORCE : 0, NULL, name, &changes, &n_changes); if (r < 0) return install_error(error, r, changes, n_changes); @@ -2672,7 +2672,7 @@ static int method_preset_all_unit_files(sd_bus_message *message, void *userdata, if (r == 0) return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - r = unit_file_preset_all(m->unit_file_scope, flags, NULL, preset_mode, &changes, &n_changes); + r = unit_file_preset_all(m->runtime_scope, flags, NULL, preset_mode, &changes, &n_changes); if (r < 0) return install_error(error, r, changes, n_changes); @@ -2711,7 +2711,7 @@ static int method_add_dependency_unit_files(sd_bus_message *message, void *userd if (dep < 0) return -EINVAL; - r = unit_file_add_dependency(m->unit_file_scope, flags, NULL, l, target, dep, &changes, &n_changes); + r = unit_file_add_dependency(m->runtime_scope, flags, NULL, l, target, dep, &changes, &n_changes); if (r < 0) return install_error(error, r, changes, n_changes); @@ -2738,7 +2738,7 @@ static int method_get_unit_file_links(sd_bus_message *message, void *userdata, s if (r < 0) return r; - r = unit_file_disable(m->unit_file_scope, + r = unit_file_disable(m->runtime_scope, UNIT_FILE_DRY_RUN | (runtime ? UNIT_FILE_RUNTIME : 0), NULL, STRV_MAKE(name), &changes, &n_changes); if (r < 0) { diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c index 8f851cbceb..a9e63b0678 100644 --- a/src/core/dbus-unit.c +++ b/src/core/dbus-unit.c @@ -1993,7 +1993,6 @@ static int bus_set_transient_emergency_action( const char *s; EmergencyAction v; int r; - bool system; assert(p); @@ -2001,8 +2000,7 @@ static int bus_set_transient_emergency_action( if (r < 0) return r; - system = MANAGER_IS_SYSTEM(u->manager); - r = parse_emergency_action(s, system, &v); + r = parse_emergency_action(s, u->manager->runtime_scope, &v); if (r < 0) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, r == -EOPNOTSUPP ? "%s setting invalid for manager type: %s" diff --git a/src/core/emergency-action.c b/src/core/emergency-action.c index 0234772b95..5b9ec75922 100644 --- a/src/core/emergency-action.c +++ b/src/core/emergency-action.c @@ -154,7 +154,7 @@ DEFINE_STRING_TABLE_LOOKUP(emergency_action, EmergencyAction); int parse_emergency_action( const char *value, - bool system, + RuntimeScope runtime_scope, EmergencyAction *ret) { EmergencyAction x; @@ -163,7 +163,7 @@ int parse_emergency_action( if (x < 0) return -EINVAL; - if (!system && x != EMERGENCY_ACTION_NONE && x < _EMERGENCY_ACTION_FIRST_USER_ACTION) + if (runtime_scope != RUNTIME_SCOPE_SYSTEM && x != EMERGENCY_ACTION_NONE && x < _EMERGENCY_ACTION_FIRST_USER_ACTION) return -EOPNOTSUPP; *ret = x; diff --git a/src/core/emergency-action.h b/src/core/emergency-action.h index 4d7e755ae1..89a1dead23 100644 --- a/src/core/emergency-action.h +++ b/src/core/emergency-action.h @@ -3,6 +3,8 @@ #include +#include "runtime-scope.h" + typedef enum EmergencyAction { EMERGENCY_ACTION_NONE, EMERGENCY_ACTION_REBOOT, @@ -33,4 +35,4 @@ void emergency_action(Manager *m, const char* emergency_action_to_string(EmergencyAction i) _const_; EmergencyAction emergency_action_from_string(const char *s) _pure_; -int parse_emergency_action(const char *value, bool system, EmergencyAction *ret); +int parse_emergency_action(const char *value, RuntimeScope runtime_scope, EmergencyAction *ret); diff --git a/src/core/execute.c b/src/core/execute.c index 085b03aeb8..9db5b2cd17 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -4448,7 +4448,7 @@ static int exec_child( * invocations themselves. Also note that while we'll only invoke NSS modules involved in user management they * might internally call into other NSS modules that are involved in hostname resolution, we never know. */ if (setenv("SYSTEMD_ACTIVATION_UNIT", unit->id, true) != 0 || - setenv("SYSTEMD_ACTIVATION_SCOPE", MANAGER_IS_SYSTEM(unit->manager) ? "system" : "user", true) != 0) { + setenv("SYSTEMD_ACTIVATION_SCOPE", runtime_scope_to_string(unit->manager->runtime_scope), true) != 0) { *exit_status = EXIT_MEMORY; return log_unit_error_errno(unit, errno, "Failed to update environment: %m"); } diff --git a/src/core/fuzz-unit-file.c b/src/core/fuzz-unit-file.c index 7b393386ff..8e0ace2540 100644 --- a/src/core/fuzz-unit-file.c +++ b/src/core/fuzz-unit-file.c @@ -66,7 +66,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { if (!getenv("SYSTEMD_LOG_LEVEL")) log_set_max_level(LOG_CRIT); - assert_se(manager_new(LOOKUP_SCOPE_SYSTEM, MANAGER_TEST_RUN_MINIMAL, &m) >= 0); + assert_se(manager_new(RUNTIME_SCOPE_SYSTEM, MANAGER_TEST_RUN_MINIMAL, &m) >= 0); name = strjoina("a.", unit_type_to_string(t)); assert_se(unit_new_for_name(m, unit_vtable[t]->object_size, name, &u) >= 0); diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index c917f0976f..776d0f1a32 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -2744,12 +2744,12 @@ int config_parse_environ( return 0; } - bool is_system = ltype; - - const Specifier table[] = { + /* If 'u' is set, we operate on the regular unit specifier table. Otherwise we use a manager-specific + * specifier table (in which case ltype must contain the runtime scope). */ + const Specifier *table = u ? NULL : (const Specifier[]) { COMMON_SYSTEM_SPECIFIERS, COMMON_TMP_SPECIFIERS, - COMMON_CREDS_SPECIFIERS(is_system ? LOOKUP_SCOPE_SYSTEM : LOOKUP_SCOPE_USER), + COMMON_CREDS_SPECIFIERS(ltype), { 'h', specifier_user_home, NULL }, { 's', specifier_user_shell, NULL }, }; @@ -2768,10 +2768,10 @@ int config_parse_environ( if (r == 0) return 0; - if (u) - r = unit_env_printf(u, word, &resolved); - else + if (table) r = specifier_printf(word, sc_arg_max(), table, NULL, NULL, &resolved); + else + r = unit_env_printf(u, word, &resolved); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve specifiers in %s, ignoring: %m", word); @@ -5625,7 +5625,7 @@ int config_parse_emergency_action( void *userdata) { EmergencyAction *x = ASSERT_PTR(data); - bool is_system; + RuntimeScope runtime_scope; int r; assert(filename); @@ -5634,16 +5634,16 @@ int config_parse_emergency_action( /* If we have a unit determine the scope based on it */ if (unit) - is_system = MANAGER_IS_SYSTEM(((Unit*) ASSERT_PTR(userdata))->manager); + runtime_scope = ((Unit*) ASSERT_PTR(userdata))->manager->runtime_scope; else - is_system = ltype; /* otherwise, assume the scope is passed in via ltype */ + runtime_scope = ltype; /* otherwise, assume the scope is passed in via ltype */ - r = parse_emergency_action(rvalue, is_system, x); + r = parse_emergency_action(rvalue, runtime_scope, x); if (r < 0) { if (r == -EOPNOTSUPP) log_syntax(unit, LOG_WARNING, filename, line, r, "%s= specified as %s mode action, ignoring: %s", - lvalue, is_system ? "user" : "system", rvalue); + lvalue, runtime_scope_to_string(runtime_scope), rvalue); else log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to parse %s=, ignoring: %s", lvalue, rvalue); diff --git a/src/core/main.c b/src/core/main.c index 7ebb447c03..29302a6de9 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -119,7 +119,7 @@ static const char *arg_bus_introspect = NULL; /* Those variables are initialized to 0 automatically, so we avoid uninitialized memory access. Real * defaults are assigned in reset_arguments() below. */ static char *arg_default_unit; -static bool arg_system; +static RuntimeScope arg_runtime_scope; bool arg_dump_core; int arg_crash_chvt; bool arg_crash_shell; @@ -664,8 +664,8 @@ static int parse_config_file(void) { { "Manager", "DefaultStartLimitInterval", config_parse_sec, 0, &arg_default_start_limit_interval }, /* obsolete alias */ { "Manager", "DefaultStartLimitIntervalSec", config_parse_sec, 0, &arg_default_start_limit_interval }, { "Manager", "DefaultStartLimitBurst", config_parse_unsigned, 0, &arg_default_start_limit_burst }, - { "Manager", "DefaultEnvironment", config_parse_environ, arg_system, &arg_default_environment }, - { "Manager", "ManagerEnvironment", config_parse_environ, arg_system, &arg_manager_environment }, + { "Manager", "DefaultEnvironment", config_parse_environ, arg_runtime_scope, &arg_default_environment }, + { "Manager", "ManagerEnvironment", config_parse_environ, arg_runtime_scope, &arg_manager_environment }, { "Manager", "DefaultLimitCPU", config_parse_rlimit, RLIMIT_CPU, arg_default_rlimit }, { "Manager", "DefaultLimitFSIZE", config_parse_rlimit, RLIMIT_FSIZE, arg_default_rlimit }, { "Manager", "DefaultLimitDATA", config_parse_rlimit, RLIMIT_DATA, arg_default_rlimit }, @@ -691,7 +691,7 @@ static int parse_config_file(void) { { "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_default_tasks_max }, { "Manager", "DefaultMemoryPressureThresholdSec", config_parse_sec, 0, &arg_default_memory_pressure_threshold_usec }, { "Manager", "DefaultMemoryPressureWatch", config_parse_memory_pressure_watch, 0, &arg_default_memory_pressure_watch }, - { "Manager", "CtrlAltDelBurstAction", config_parse_emergency_action, arg_system, &arg_cad_burst_action }, + { "Manager", "CtrlAltDelBurstAction", config_parse_emergency_action, arg_runtime_scope, &arg_cad_burst_action }, { "Manager", "DefaultOOMPolicy", config_parse_oom_policy, 0, &arg_default_oom_policy }, { "Manager", "DefaultOOMScoreAdjust", config_parse_oom_score_adjust, 0, NULL }, { "Manager", "ReloadLimitIntervalSec", config_parse_sec, 0, &arg_reload_limit_interval_sec }, @@ -708,9 +708,11 @@ static int parse_config_file(void) { const char *suffix; int r; - if (arg_system) + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM) suffix = "system.conf.d"; else { + assert(arg_runtime_scope == RUNTIME_SCOPE_USER); + r = manager_find_user_config_paths(&files, &dirs); if (r < 0) return log_error_errno(r, "Failed to determine config file paths: %m"); @@ -962,11 +964,11 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_SYSTEM: - arg_system = true; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; break; case ARG_USER: - arg_system = false; + arg_runtime_scope = RUNTIME_SCOPE_USER; user_arg_seen = true; break; @@ -1107,7 +1109,7 @@ static int parse_argv(int argc, char *argv[]) { /* Hmm, when we aren't run as init system let's complain about excess arguments */ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Excess arguments."); - if (arg_action == ACTION_RUN && !arg_system && !user_arg_seen) + if (arg_action == ACTION_RUN && arg_runtime_scope == RUNTIME_SCOPE_USER && !user_arg_seen) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Explicit --user argument required to run as user manager."); @@ -1865,7 +1867,7 @@ static int do_reexecute( if (switch_root_dir) args[i++] = "--switched-root"; - args[i++] = arg_system ? "--system" : "--user"; + args[i++] = arg_runtime_scope == RUNTIME_SCOPE_SYSTEM ? "--system" : "--user"; args[i++] = "--deserialize"; args[i++] = sfd; args[i++] = NULL; @@ -2082,10 +2084,13 @@ static int invoke_main_loop( static void log_execution_mode(bool *ret_first_boot) { bool first_boot = false; + int r; assert(ret_first_boot); - if (arg_system) { + switch (arg_runtime_scope) { + + case RUNTIME_SCOPE_SYSTEM: { struct utsname uts; int v; @@ -2102,7 +2107,6 @@ static void log_execution_mode(bool *ret_first_boot) { if (in_initrd()) log_info("Running in initrd."); else { - int r; _cleanup_free_ char *id_text = NULL; /* Let's check whether we are in first boot. First, check if an override was @@ -2143,7 +2147,11 @@ static void log_execution_mode(bool *ret_first_boot) { "Your mileage may vary.", uts.release, KERNEL_BASELINE_VERSION); else log_debug("Kernel version %s, our baseline is %s", uts.release, KERNEL_BASELINE_VERSION); - } else { + + break; + } + + case RUNTIME_SCOPE_USER: if (DEBUG_LOGGING) { _cleanup_free_ char *t = NULL; @@ -2152,6 +2160,11 @@ static void log_execution_mode(bool *ret_first_boot) { arg_action == ACTION_TEST ? " test" : "", getuid(), strna(t), systemd_features); } + + break; + + default: + assert_not_reached(); } *ret_first_boot = first_boot; @@ -2180,7 +2193,9 @@ static int initialize_runtime( update_cpu_affinity(skip_setup); update_numa_policy(skip_setup); - if (arg_system) { + switch (arg_runtime_scope) { + + case RUNTIME_SCOPE_SYSTEM: /* Make sure we leave a core dump without panicking the kernel. */ install_crash_handler(); @@ -2205,7 +2220,10 @@ static int initialize_runtime( r = watchdog_set_device(arg_watchdog_device); if (r < 0) log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m", arg_watchdog_device); - } else { + + break; + + case RUNTIME_SCOPE_USER: { _cleanup_free_ char *p = NULL; /* Create the runtime directory and place the inaccessible device nodes there, if we run in @@ -2219,30 +2237,38 @@ static int initialize_runtime( (void) mkdir_p_label(p, 0755); (void) make_inaccessible_nodes(p, UID_INVALID, GID_INVALID); + break; + } + + default: + assert_not_reached(); } if (arg_timer_slack_nsec != NSEC_INFINITY) if (prctl(PR_SET_TIMERSLACK, arg_timer_slack_nsec) < 0) log_warning_errno(errno, "Failed to adjust timer slack, ignoring: %m"); - if (arg_system && !cap_test_all(arg_capability_bounding_set)) { - r = capability_bounding_set_drop_usermode(arg_capability_bounding_set); - if (r < 0) { - *ret_error_message = "Failed to drop capability bounding set of usermode helpers"; - return log_emergency_errno(r, "Failed to drop capability bounding set of usermode helpers: %m"); + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM) { + + if (!cap_test_all(arg_capability_bounding_set)) { + r = capability_bounding_set_drop_usermode(arg_capability_bounding_set); + if (r < 0) { + *ret_error_message = "Failed to drop capability bounding set of usermode helpers"; + return log_emergency_errno(r, "Failed to drop capability bounding set of usermode helpers: %m"); + } + + r = capability_bounding_set_drop(arg_capability_bounding_set, true); + if (r < 0) { + *ret_error_message = "Failed to drop capability bounding set"; + return log_emergency_errno(r, "Failed to drop capability bounding set: %m"); + } } - r = capability_bounding_set_drop(arg_capability_bounding_set, true); - if (r < 0) { - *ret_error_message = "Failed to drop capability bounding set"; - return log_emergency_errno(r, "Failed to drop capability bounding set: %m"); - } - } - - if (arg_system && arg_no_new_privs) { - if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) { - *ret_error_message = "Failed to disable new privileges"; - return log_emergency_errno(errno, "Failed to disable new privileges: %m"); + if (arg_no_new_privs) { + if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) { + *ret_error_message = "Failed to disable new privileges"; + return log_emergency_errno(errno, "Failed to disable new privileges: %m"); + } } } @@ -2254,7 +2280,7 @@ static int initialize_runtime( } } - if (!arg_system) + if (arg_runtime_scope == RUNTIME_SCOPE_USER) /* Become reaper of our children */ if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0) log_warning_errno(errno, "Failed to make us a subreaper, ignoring: %m"); @@ -2264,7 +2290,7 @@ static int initialize_runtime( (void) bump_rlimit_memlock(saved_rlimit_memlock); /* Pull credentials from various sources into a common credential directory */ - if (arg_system && !skip_setup) + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM && !skip_setup) (void) import_credentials(); return 0; @@ -2376,7 +2402,7 @@ static void fallback_rlimit_nofile(const struct rlimit *saved_rlimit_nofile) { * (and thus use poll()/epoll instead of select(), the way everybody should) can * explicitly opt into high fds by bumping their soft limit beyond 1024, to the hard limit * we pass. */ - if (arg_system) { + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM) { int nr; /* Get the underlying absolute limit the kernel enforces */ @@ -2407,7 +2433,7 @@ static void fallback_rlimit_memlock(const struct rlimit *saved_rlimit_memlock) { return; } - if (arg_system) { + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM) { /* Raise the default limit to 8M also on old kernels and in containers (8M is the kernel * default for this since kernel 5.16) */ rl->rlim_max = MAX(rl->rlim_max, (rlim_t) DEFAULT_RLIMIT_MEMLOCK); @@ -2434,7 +2460,7 @@ static void reset_arguments(void) { arg_default_unit = mfree(arg_default_unit); - /* arg_system — ignore */ + /* arg_runtime_scope — ignore */ arg_dump_core = true; arg_crash_chvt = -1; @@ -2449,11 +2475,11 @@ static void reset_arguments(void) { arg_default_std_output = EXEC_OUTPUT_JOURNAL; arg_default_std_error = EXEC_OUTPUT_INHERIT; arg_default_restart_usec = DEFAULT_RESTART_USEC; - arg_default_timeout_start_usec = manager_default_timeout(arg_system); - arg_default_timeout_stop_usec = manager_default_timeout(arg_system); - arg_default_timeout_abort_usec = manager_default_timeout(arg_system); + arg_default_timeout_start_usec = manager_default_timeout(arg_runtime_scope); + arg_default_timeout_stop_usec = manager_default_timeout(arg_runtime_scope); + arg_default_timeout_abort_usec = manager_default_timeout(arg_runtime_scope); arg_default_timeout_abort_set = false; - arg_default_device_timeout_usec = manager_default_timeout(arg_system); + arg_default_device_timeout_usec = manager_default_timeout(arg_runtime_scope); arg_default_start_limit_interval = DEFAULT_START_LIMIT_INTERVAL; arg_default_start_limit_burst = DEFAULT_START_LIMIT_BURST; arg_runtime_watchdog = 0; @@ -2545,7 +2571,7 @@ static int parse_configuration(const struct rlimit *saved_rlimit_nofile, if (r < 0) log_warning_errno(r, "Failed to parse config file, ignoring: %m"); - if (arg_system) { + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM) { r = proc_cmdline_parse(parse_proc_cmdline_item, NULL, 0); if (r < 0) log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m"); @@ -2582,12 +2608,12 @@ static int safety_checks(void) { "Unsupported execution mode while PID 1."); if (getpid_cached() == 1 && - !arg_system) + arg_runtime_scope == RUNTIME_SCOPE_USER) return log_error_errno(SYNTHETIC_ERRNO(EPERM), "Can't run --user mode as PID 1."); if (arg_action == ACTION_RUN && - arg_system && + arg_runtime_scope == RUNTIME_SCOPE_SYSTEM && getpid_cached() != 1) return log_error_errno(SYNTHETIC_ERRNO(EPERM), "Can't run system mode unless PID 1."); @@ -2597,23 +2623,32 @@ static int safety_checks(void) { return log_error_errno(SYNTHETIC_ERRNO(EPERM), "Don't run test mode as root."); - if (!arg_system && - arg_action == ACTION_RUN && - sd_booted() <= 0) - return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), - "Trying to run as user instance, but the system has not been booted with systemd."); + switch (arg_runtime_scope) { - if (!arg_system && - arg_action == ACTION_RUN && - !getenv("XDG_RUNTIME_DIR")) - return log_error_errno(SYNTHETIC_ERRNO(EUNATCH), - "Trying to run as user instance, but $XDG_RUNTIME_DIR is not set."); + case RUNTIME_SCOPE_USER: - if (arg_system && - arg_action == ACTION_RUN && - running_in_chroot() > 0) - return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), - "Cannot be run in a chroot() environment."); + if (arg_action == ACTION_RUN && + sd_booted() <= 0) + return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), + "Trying to run as user instance, but the system has not been booted with systemd."); + + if (arg_action == ACTION_RUN && + !getenv("XDG_RUNTIME_DIR")) + return log_error_errno(SYNTHETIC_ERRNO(EUNATCH), + "Trying to run as user instance, but $XDG_RUNTIME_DIR is not set."); + + break; + + case RUNTIME_SCOPE_SYSTEM: + if (arg_action == ACTION_RUN && + running_in_chroot() > 0) + return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), + "Cannot be run in a chroot() environment."); + break; + + default: + assert_not_reached(); + } return 0; } @@ -2683,7 +2718,7 @@ static int collect_fds(FDSet **ret_fds, const char **ret_error_message) { static void setup_console_terminal(bool skip_setup) { - if (!arg_system) + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) return; /* Become a session leader if we aren't one yet. */ @@ -2781,7 +2816,7 @@ int main(int argc, char *argv[]) { if (getpid_cached() == 1) { /* When we run as PID 1 force system mode */ - arg_system = true; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; /* Disable the umask logic */ umask(0); @@ -2888,7 +2923,7 @@ int main(int argc, char *argv[]) { (void) cache_efi_options_variable(); } else { /* Running as user instance */ - arg_system = false; + arg_runtime_scope = RUNTIME_SCOPE_USER; log_set_always_reopen_console(true); log_set_target_and_open(LOG_TARGET_AUTO); @@ -2994,7 +3029,7 @@ int main(int argc, char *argv[]) { if (r < 0) goto finish; - r = manager_new(arg_system ? LOOKUP_SCOPE_SYSTEM : LOOKUP_SCOPE_USER, + r = manager_new(arg_runtime_scope, arg_action == ACTION_TEST ? MANAGER_TEST_FULL : 0, &m); if (r < 0) { @@ -3110,12 +3145,8 @@ finish: /* Try to invoke the shutdown binary unless we already failed. * If we failed above, we want to freeze after finishing cleanup. */ - if (arg_system && IN_SET(r, MANAGER_EXIT, - MANAGER_REBOOT, - MANAGER_POWEROFF, - MANAGER_HALT, - MANAGER_KEXEC)) { - + if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM && + IN_SET(r, MANAGER_EXIT, MANAGER_REBOOT, MANAGER_POWEROFF, MANAGER_HALT, MANAGER_KEXEC)) { r = become_shutdown(r, retval); log_error_errno(r, "Failed to execute shutdown binary, %s: %m", getpid_cached() == 1 ? "freezing" : "quitting"); error_message = "Failed to execute shutdown binary"; diff --git a/src/core/manager.c b/src/core/manager.c index 634aa386ea..6a130d65fa 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -855,19 +855,19 @@ void manager_set_switching_root(Manager *m, bool switching_root) { m->switching_root = MANAGER_IS_SYSTEM(m) && switching_root; } -int manager_new(LookupScope scope, ManagerTestRunFlags test_run_flags, Manager **_m) { +int manager_new(RuntimeScope runtime_scope, ManagerTestRunFlags test_run_flags, Manager **_m) { _cleanup_(manager_freep) Manager *m = NULL; int r; assert(_m); - assert(IN_SET(scope, LOOKUP_SCOPE_SYSTEM, LOOKUP_SCOPE_USER)); + assert(IN_SET(runtime_scope, RUNTIME_SCOPE_SYSTEM, RUNTIME_SCOPE_USER)); m = new(Manager, 1); if (!m) return -ENOMEM; *m = (Manager) { - .unit_file_scope = scope, + .runtime_scope = runtime_scope, .objective = _MANAGER_OBJECTIVE_INVALID, .status_unit_format = STATUS_UNIT_FORMAT_DEFAULT, @@ -876,10 +876,10 @@ int manager_new(LookupScope scope, ManagerTestRunFlags test_run_flags, Manager * .default_memory_accounting = MEMORY_ACCOUNTING_DEFAULT, .default_tasks_accounting = true, .default_tasks_max = TASKS_MAX_UNSET, - .default_timeout_start_usec = manager_default_timeout(scope == LOOKUP_SCOPE_SYSTEM), - .default_timeout_stop_usec = manager_default_timeout(scope == LOOKUP_SCOPE_SYSTEM), + .default_timeout_start_usec = manager_default_timeout(runtime_scope), + .default_timeout_stop_usec = manager_default_timeout(runtime_scope), .default_restart_usec = DEFAULT_RESTART_USEC, - .default_device_timeout_usec = manager_default_timeout(scope == LOOKUP_SCOPE_SYSTEM), + .default_device_timeout_usec = manager_default_timeout(runtime_scope), .original_log_level = -1, .original_log_target = _LOG_TARGET_INVALID, @@ -1790,7 +1790,7 @@ static void manager_preset_all(Manager *m) { /* If this is the first boot, and we are in the host system, then preset everything */ UnitFilePresetMode mode = FIRST_BOOT_FULL_PRESET ? UNIT_FILE_PRESET_FULL : UNIT_FILE_PRESET_ENABLE_ONLY; - r = unit_file_preset_all(LOOKUP_SCOPE_SYSTEM, 0, NULL, mode, NULL, 0); + r = unit_file_preset_all(RUNTIME_SCOPE_SYSTEM, 0, NULL, mode, NULL, 0); if (r < 0) log_full_errno(r == -EEXIST ? LOG_NOTICE : LOG_WARNING, r, "Failed to populate /etc with preset unit settings, ignoring: %m"); @@ -1839,7 +1839,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds, const char *roo /* If we are running in test mode, we still want to run the generators, * but we should not touch the real generator directories. */ - r = lookup_paths_init_or_warn(&m->lookup_paths, m->unit_file_scope, + r = lookup_paths_init_or_warn(&m->lookup_paths, m->runtime_scope, MANAGER_IS_TEST_RUN(m) ? LOOKUP_PATHS_TEMPORARY_GENERATED : 0, root); if (r < 0) @@ -3464,7 +3464,7 @@ int manager_reload(Manager *m) { m->uid_refs = hashmap_free(m->uid_refs); m->gid_refs = hashmap_free(m->gid_refs); - r = lookup_paths_init_or_warn(&m->lookup_paths, m->unit_file_scope, 0, NULL); + r = lookup_paths_init_or_warn(&m->lookup_paths, m->runtime_scope, 0, NULL); if (r < 0) return r; @@ -3807,7 +3807,7 @@ static int build_generator_environment(Manager *m, char ***ret) { if (!nl) return -ENOMEM; - r = strv_env_assign(&nl, "SYSTEMD_SCOPE", MANAGER_IS_SYSTEM(m) ? "system" : "user"); + r = strv_env_assign(&nl, "SYSTEMD_SCOPE", runtime_scope_to_string(m->runtime_scope)); if (r < 0) return r; @@ -3896,7 +3896,7 @@ static int manager_run_generators(Manager *m) { if (MANAGER_IS_TEST_RUN(m) && !(m->test_run_flags & MANAGER_TEST_RUN_GENERATORS)) return 0; - paths = generator_binary_paths(m->unit_file_scope); + paths = generator_binary_paths(m->runtime_scope); if (!paths) return log_oom(); diff --git a/src/core/manager.h b/src/core/manager.h index 085fffef50..25fcd275d4 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -235,7 +235,8 @@ struct Manager { int user_lookup_fds[2]; sd_event_source *user_lookup_event_source; - LookupScope unit_file_scope; + RuntimeScope runtime_scope; + LookupPaths lookup_paths; Hashmap *unit_id_map; Hashmap *unit_name_map; @@ -476,8 +477,8 @@ static inline usec_t manager_default_timeout_abort_usec(Manager *m) { return m->default_timeout_abort_set ? m->default_timeout_abort_usec : m->default_timeout_stop_usec; } -#define MANAGER_IS_SYSTEM(m) ((m)->unit_file_scope == LOOKUP_SCOPE_SYSTEM) -#define MANAGER_IS_USER(m) ((m)->unit_file_scope != LOOKUP_SCOPE_SYSTEM) +#define MANAGER_IS_SYSTEM(m) ((m)->runtime_scope == RUNTIME_SCOPE_SYSTEM) +#define MANAGER_IS_USER(m) ((m)->runtime_scope == RUNTIME_SCOPE_USER) #define MANAGER_IS_RELOADING(m) ((m)->n_reloading > 0) @@ -490,11 +491,11 @@ static inline usec_t manager_default_timeout_abort_usec(Manager *m) { #define MANAGER_IS_TEST_RUN(m) ((m)->test_run_flags != 0) -static inline usec_t manager_default_timeout(bool is_system) { - return is_system ? DEFAULT_TIMEOUT_USEC : DEFAULT_USER_TIMEOUT_USEC; +static inline usec_t manager_default_timeout(RuntimeScope scope) { + return scope == RUNTIME_SCOPE_SYSTEM ? DEFAULT_TIMEOUT_USEC : DEFAULT_USER_TIMEOUT_USEC; } -int manager_new(LookupScope scope, ManagerTestRunFlags test_run_flags, Manager **m); +int manager_new(RuntimeScope scope, ManagerTestRunFlags test_run_flags, Manager **m); Manager* manager_free(Manager *m); DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free); diff --git a/src/core/unit-printf.c b/src/core/unit-printf.c index e454df0405..1b267d4fdd 100644 --- a/src/core/unit-printf.c +++ b/src/core/unit-printf.c @@ -183,7 +183,7 @@ int unit_name_printf(const Unit *u, const char* format, char **ret) { COMMON_SYSTEM_SPECIFIERS, - COMMON_CREDS_SPECIFIERS(u->manager->unit_file_scope), + COMMON_CREDS_SPECIFIERS(u->manager->runtime_scope), {} }; @@ -253,7 +253,7 @@ int unit_full_printf_full(const Unit *u, const char *format, size_t max_length, COMMON_SYSTEM_SPECIFIERS, - COMMON_CREDS_SPECIFIERS(u->manager->unit_file_scope), + COMMON_CREDS_SPECIFIERS(u->manager->runtime_scope), COMMON_TMP_SPECIFIERS, {} diff --git a/src/core/unit.c b/src/core/unit.c index f5544cbd92..ecf3b2b7fc 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -4009,7 +4009,7 @@ UnitFileState unit_get_unit_file_state(Unit *u) { if (u->unit_file_state < 0 && u->fragment_path) { r = unit_file_get_state( - u->manager->unit_file_scope, + u->manager->runtime_scope, NULL, u->id, &u->unit_file_state); @@ -4036,7 +4036,7 @@ int unit_get_unit_file_preset(Unit *u) { return (u->unit_file_preset = -EISDIR); u->unit_file_preset = unit_file_query_preset( - u->manager->unit_file_scope, + u->manager->runtime_scope, NULL, bn, NULL); diff --git a/src/home/homectl.c b/src/home/homectl.c index 531b685e22..158164ae81 100644 --- a/src/home/homectl.c +++ b/src/home/homectl.c @@ -113,7 +113,7 @@ static int acquire_bus(sd_bus **bus) { if (*bus) return 0; - r = bus_connect_transport(arg_transport, arg_host, false, bus); + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c index 4e30053392..a0e949d82c 100644 --- a/src/hostname/hostnamectl.c +++ b/src/hostname/hostnamectl.c @@ -732,7 +732,7 @@ static int run(int argc, char *argv[]) { if (r <= 0) return r; - r = bus_connect_transport(arg_transport, arg_host, false, &bus); + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, &bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/libsystemd/sd-bus/bus-internal.h b/src/libsystemd/sd-bus/bus-internal.h index dda6adfd48..a9acdc7d0a 100644 --- a/src/libsystemd/sd-bus/bus-internal.h +++ b/src/libsystemd/sd-bus/bus-internal.h @@ -12,6 +12,7 @@ #include "hashmap.h" #include "list.h" #include "prioq.h" +#include "runtime-scope.h" #include "socket-util.h" #include "time-util.h" @@ -201,8 +202,6 @@ struct sd_bus { bool nodes_modified:1; bool trusted:1; bool manual_peer_interface:1; - bool is_system:1; - bool is_user:1; bool allow_interactive_authorization:1; bool exit_on_disconnect:1; bool exited:1; @@ -215,6 +214,8 @@ struct sd_bus { bool connected_signal:1; bool close_on_exit:1; + RuntimeScope runtime_scope; + signed int use_memfd:2; void *rbuffer; @@ -399,7 +400,7 @@ void bus_close_io_fds(sd_bus *b); int bus_set_address_system(sd_bus *bus); int bus_set_address_user(sd_bus *bus); int bus_set_address_system_remote(sd_bus *b, const char *host); -int bus_set_address_machine(sd_bus *b, bool user, const char *machine); +int bus_set_address_machine(sd_bus *b, RuntimeScope runtime_scope, const char *machine); int bus_maybe_reply_error(sd_bus_message *m, int r, sd_bus_error *error); diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c index 5590cecfd9..e3f71ca302 100644 --- a/src/libsystemd/sd-bus/sd-bus.c +++ b/src/libsystemd/sd-bus/sd-bus.c @@ -253,6 +253,7 @@ _public_ int sd_bus_new(sd_bus **ret) { .n_groups = SIZE_MAX, .close_on_exit = true, .ucred = UCRED_INVALID, + .runtime_scope = _RUNTIME_SCOPE_INVALID, }; /* We guarantee that wqueue always has space for at least one entry */ @@ -1282,8 +1283,10 @@ int bus_set_address_system(sd_bus *b) { e = secure_getenv("DBUS_SYSTEM_BUS_ADDRESS"); r = sd_bus_set_address(b, e ?: DEFAULT_SYSTEM_BUS_ADDRESS); - if (r >= 0) - b->is_system = true; + if (r < 0) + return r; + + b->runtime_scope = RUNTIME_SCOPE_SYSTEM; return r; } @@ -1354,8 +1357,10 @@ int bus_set_address_user(sd_bus *b) { } r = sd_bus_set_address(b, a); - if (r >= 0) - b->is_user = true; + if (r < 0) + return r; + + b->runtime_scope = RUNTIME_SCOPE_USER; return r; } @@ -1504,7 +1509,7 @@ _public_ int sd_bus_open_system_remote(sd_bus **ret, const char *host) { b->bus_client = true; b->trusted = false; - b->is_system = true; + b->runtime_scope = RUNTIME_SCOPE_SYSTEM; b->is_local = false; r = sd_bus_start(b); @@ -1515,7 +1520,7 @@ _public_ int sd_bus_open_system_remote(sd_bus **ret, const char *host) { return 0; } -int bus_set_address_machine(sd_bus *b, bool user, const char *machine) { +int bus_set_address_machine(sd_bus *b, RuntimeScope runtime_scope, const char *machine) { _cleanup_free_ char *a = NULL; const char *rhs; @@ -1523,7 +1528,7 @@ int bus_set_address_machine(sd_bus *b, bool user, const char *machine) { assert(machine); rhs = strchr(machine, '@'); - if (rhs || user) { + if (rhs || runtime_scope == RUNTIME_SCOPE_USER) { _cleanup_free_ char *u = NULL, *eu = NULL, *erhs = NULL; /* If there's an "@" in the container specification, we'll connect as a user specified at its @@ -1579,7 +1584,7 @@ int bus_set_address_machine(sd_bus *b, bool user, const char *machine) { if (!a) return -ENOMEM; - if (user) { + if (runtime_scope == RUNTIME_SCOPE_USER) { /* Ideally we'd use the "--user" switch to systemd-stdio-bridge here, but it's only * available in recent systemd versions. Using the "-p" switch with the explicit path * is a working alternative, and is compatible with older versions, hence that's what @@ -1697,12 +1702,12 @@ _public_ int sd_bus_open_system_machine(sd_bus **ret, const char *user_and_machi if (r < 0) return r; - r = bus_set_address_machine(b, false, user_and_machine); + r = bus_set_address_machine(b, RUNTIME_SCOPE_SYSTEM, user_and_machine); if (r < 0) return r; b->bus_client = true; - b->is_system = true; + b->runtime_scope = RUNTIME_SCOPE_SYSTEM; r = sd_bus_start(b); if (r < 0) @@ -1733,7 +1738,7 @@ _public_ int sd_bus_open_user_machine(sd_bus **ret, const char *user_and_machine if (r < 0) return r; - r = bus_set_address_machine(b, true, user_and_machine); + r = bus_set_address_machine(b, RUNTIME_SCOPE_USER, user_and_machine); if (r < 0) return r; @@ -4183,12 +4188,8 @@ _public_ int sd_bus_get_description(sd_bus *bus, const char **description) { if (bus->description) *description = bus->description; - else if (bus->is_system) - *description = "system"; - else if (bus->is_user) - *description = "user"; else - *description = NULL; + *description = runtime_scope_to_string(bus->runtime_scope); return 0; } @@ -4199,17 +4200,11 @@ _public_ int sd_bus_get_scope(sd_bus *bus, const char **scope) { assert_return(scope, -EINVAL); assert_return(!bus_pid_changed(bus), -ECHILD); - if (bus->is_user) { - *scope = "user"; - return 0; - } + if (bus->runtime_scope < 0) + return -ENODATA; - if (bus->is_system) { - *scope = "system"; - return 0; - } - - return -ENODATA; + *scope = runtime_scope_to_string(bus->runtime_scope); + return 0; } _public_ int sd_bus_get_address(sd_bus *bus, const char **address) { diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c index 1af3a36d1d..5207480360 100644 --- a/src/libsystemd/sd-path/sd-path.c +++ b/src/libsystemd/sd-path/sd-path.c @@ -609,8 +609,8 @@ static int get_search(uint64_t type, char ***list) { case SD_PATH_SYSTEMD_SEARCH_SYSTEM_UNIT: case SD_PATH_SYSTEMD_SEARCH_USER_UNIT: { _cleanup_(lookup_paths_free) LookupPaths lp = {}; - const LookupScope scope = type == SD_PATH_SYSTEMD_SEARCH_SYSTEM_UNIT ? - LOOKUP_SCOPE_SYSTEM : LOOKUP_SCOPE_USER; + RuntimeScope scope = type == SD_PATH_SYSTEMD_SEARCH_SYSTEM_UNIT ? + RUNTIME_SCOPE_SYSTEM : RUNTIME_SCOPE_USER; r = lookup_paths_init(&lp, scope, 0, NULL); if (r < 0) @@ -622,9 +622,9 @@ static int get_search(uint64_t type, char ***list) { case SD_PATH_SYSTEMD_SEARCH_SYSTEM_GENERATOR: case SD_PATH_SYSTEMD_SEARCH_USER_GENERATOR: { + RuntimeScope scope = type == SD_PATH_SYSTEMD_SEARCH_SYSTEM_GENERATOR ? + RUNTIME_SCOPE_SYSTEM : RUNTIME_SCOPE_USER; char **t; - const LookupScope scope = type == SD_PATH_SYSTEMD_SEARCH_SYSTEM_GENERATOR ? - LOOKUP_SCOPE_SYSTEM : LOOKUP_SCOPE_USER; t = generator_binary_paths(scope); if (!t) @@ -638,7 +638,8 @@ static int get_search(uint64_t type, char ***list) { case SD_PATH_SYSTEMD_SEARCH_USER_ENVIRONMENT_GENERATOR: { char **t; - t = env_generator_binary_paths(type == SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR); + t = env_generator_binary_paths(type == SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR ? + RUNTIME_SCOPE_SYSTEM : RUNTIME_SCOPE_USER); if (!t) return -ENOMEM; diff --git a/src/locale/localectl.c b/src/locale/localectl.c index fb83881cc7..d8db9d9d22 100644 --- a/src/locale/localectl.c +++ b/src/locale/localectl.c @@ -528,7 +528,7 @@ static int run(int argc, char *argv[]) { if (r <= 0) return r; - r = bus_connect_transport(arg_transport, arg_host, false, &bus); + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, &bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/login/loginctl.c b/src/login/loginctl.c index 244708d2f5..a2d03a9e64 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -1463,7 +1463,7 @@ static int run(int argc, char *argv[]) { if (r <= 0) return r; - r = bus_connect_transport(arg_transport, arg_host, false, &bus); + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, &bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c index 45bc056326..111158cb76 100644 --- a/src/machine/machine-dbus.c +++ b/src/machine/machine-dbus.c @@ -502,7 +502,7 @@ static int container_bus_new(Machine *m, sd_bus_error *error, sd_bus **ret) { bus->address = address; bus->bus_client = true; bus->trusted = false; - bus->is_system = true; + bus->runtime_scope = RUNTIME_SCOPE_SYSTEM; r = sd_bus_start(bus); if (r == -ENOENT) diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c index 80eebf36d3..e9956466ce 100644 --- a/src/machine/machinectl.c +++ b/src/machine/machinectl.c @@ -2842,7 +2842,7 @@ static int run(int argc, char *argv[]) { if (r <= 0) return r; - r = bus_connect_transport(arg_transport, arg_host, false, &bus); + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, &bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/mount/mount-tool.c b/src/mount/mount-tool.c index ea6d528189..5cb1cd5526 100644 --- a/src/mount/mount-tool.c +++ b/src/mount/mount-tool.c @@ -54,7 +54,7 @@ static bool arg_full = false; static bool arg_ask_password = true; static bool arg_quiet = false; static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; -static bool arg_user = false; +static RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; static const char *arg_host = NULL; static bool arg_discover = false; static char *arg_mount_what = NULL; @@ -223,11 +223,11 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_USER: - arg_user = true; + arg_runtime_scope = RUNTIME_SCOPE_USER; break; case ARG_SYSTEM: - arg_user = false; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; break; case 'H': @@ -334,12 +334,13 @@ static int parse_argv(int argc, char *argv[]) { assert_not_reached(); } - if (arg_user) + if (arg_runtime_scope == RUNTIME_SCOPE_USER) { arg_ask_password = false; - if (arg_user && arg_transport != BUS_TRANSPORT_LOCAL) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Execution in user context is not supported on non-local systems."); + if (arg_transport != BUS_TRANSPORT_LOCAL) + return log_error_errno(SYNTHETIC_ERRNO(EINVAL), + "Execution in user context is not supported on non-local systems."); + } if (arg_action == ACTION_LIST) { if (optind < argc) @@ -1459,7 +1460,7 @@ static int run(int argc, char* argv[]) { if (arg_action == ACTION_LIST) return list_devices(); - r = bus_connect_transport_systemd(arg_transport, arg_host, arg_user, &bus); + r = bus_connect_transport_systemd(arg_transport, arg_host, arg_runtime_scope, &bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/portable/portable.c b/src/portable/portable.c index eb807b0eb7..7b0ee97c8c 100644 --- a/src/portable/portable.c +++ b/src/portable/portable.c @@ -232,7 +232,7 @@ static int extract_now( /* Then, send unit file data to the parent (or/and add it to the hashmap). For that we use our usual unit * discovery logic. Note that we force looking inside of /lib/systemd/system/ for units too, as we mightbe * compiled for a split-usr system but the image might be a legacy-usr one. */ - r = lookup_paths_init(&paths, LOOKUP_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, where); + r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, where); if (r < 0) return log_debug_errno(r, "Failed to acquire lookup paths: %m"); @@ -1371,13 +1371,13 @@ int portable_attach( strempty(extensions_joined)); } - r = lookup_paths_init(&paths, LOOKUP_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); + r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); if (r < 0) return r; if (!FLAGS_SET(flags, PORTABLE_REATTACH) && !FLAGS_SET(flags, PORTABLE_FORCE_ATTACH)) HASHMAP_FOREACH(item, unit_files) { - r = unit_file_exists(LOOKUP_SCOPE_SYSTEM, &paths, item->name); + r = unit_file_exists(RUNTIME_SCOPE_SYSTEM, &paths, item->name); if (r < 0) return sd_bus_error_set_errnof(error, r, "Failed to determine whether unit '%s' exists on the host: %m", item->name); if (r > 0) @@ -1571,7 +1571,7 @@ int portable_detach( assert(name_or_path); - r = lookup_paths_init(&paths, LOOKUP_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); + r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); if (r < 0) return r; @@ -1758,7 +1758,7 @@ static int portable_get_state_internal( assert(name_or_path); assert(ret); - r = lookup_paths_init(&paths, LOOKUP_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); + r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); if (r < 0) return r; @@ -1794,7 +1794,7 @@ static int portable_get_state_internal( if (r == 0) continue; - r = unit_file_lookup_state(LOOKUP_SCOPE_SYSTEM, &paths, de->d_name, &state); + r = unit_file_lookup_state(RUNTIME_SCOPE_SYSTEM, &paths, de->d_name, &state); if (r < 0) return log_debug_errno(r, "Failed to determine unit file state of '%s': %m", de->d_name); if (!IN_SET(state, UNIT_FILE_STATIC, UNIT_FILE_DISABLED, UNIT_FILE_LINKED, UNIT_FILE_LINKED_RUNTIME)) diff --git a/src/portable/portablectl.c b/src/portable/portablectl.c index cd9f462bb3..6a638c35c5 100644 --- a/src/portable/portablectl.c +++ b/src/portable/portablectl.c @@ -221,7 +221,7 @@ static int acquire_bus(sd_bus **bus) { if (*bus) return 0; - r = bus_connect_transport(arg_transport, arg_host, false, bus); + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/run/run.c b/src/run/run.c index 471d15924a..8377c2e8cd 100644 --- a/src/run/run.c +++ b/src/run/run.c @@ -48,7 +48,7 @@ static bool arg_slice_inherit = false; static bool arg_send_sighup = false; static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; static const char *arg_host = NULL; -static bool arg_user = false; +static RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; static const char *arg_service_type = NULL; static const char *arg_exec_user = NULL; static const char *arg_exec_group = NULL; @@ -257,11 +257,11 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_USER: - arg_user = true; + arg_runtime_scope = RUNTIME_SCOPE_USER; break; case ARG_SYSTEM: - arg_user = false; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; break; case ARG_SCOPE: @@ -509,7 +509,7 @@ static int parse_argv(int argc, char *argv[]) { } /* If we are talking to the per-user instance PolicyKit isn't going to help */ - if (arg_user) + if (arg_runtime_scope == RUNTIME_SCOPE_USER) arg_ask_password = false; with_trigger = !!arg_path_property || !!arg_socket_property || arg_with_timer; @@ -582,7 +582,7 @@ static int parse_argv(int argc, char *argv[]) { } else if (!arg_unit || !with_trigger) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Command line to execute required."); - if (arg_user && arg_transport == BUS_TRANSPORT_REMOTE) + if (arg_runtime_scope == RUNTIME_SCOPE_USER && arg_transport == BUS_TRANSPORT_REMOTE) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Execution in user context is not supported on remote systems."); @@ -656,10 +656,20 @@ static int transient_cgroup_set_properties(sd_bus_message *m) { if (arg_slice_inherit) { char *end; - if (arg_user) + switch (arg_runtime_scope) { + + case RUNTIME_SCOPE_USER: r = cg_pid_get_user_slice(0, &name); - else + break; + + case RUNTIME_SCOPE_SYSTEM: r = cg_pid_get_slice(0, &name); + break; + + default: + assert_not_reached(); + } + if (r < 0) return log_error_errno(r, "Failed to get PID slice: %m"); @@ -1228,7 +1238,7 @@ static int start_transient_service( if (r < 0) return bus_log_parse_error(r); - r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_user ? STRV_MAKE_CONST("--user") : NULL); + r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL); if (r < 0) return r; } @@ -1464,7 +1474,7 @@ static int start_transient_scope(sd_bus *bus) { if (r < 0) return bus_log_parse_error(r); - r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_user ? STRV_MAKE_CONST("--user") : NULL); + r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL); if (r < 0) return r; @@ -1687,7 +1697,7 @@ static int start_transient_trigger( if (r < 0) return bus_log_parse_error(r); - r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_user ? STRV_MAKE_CONST("--user") : NULL); + r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL); if (r < 0) return r; @@ -1755,10 +1765,10 @@ static int run(int argc, char* argv[]) { /* If --wait is used connect via the bus, unconditionally, as ref/unref is not supported via the limited direct * connection */ - if (arg_wait || arg_stdio != ARG_STDIO_NONE || (arg_user && arg_transport != BUS_TRANSPORT_LOCAL)) - r = bus_connect_transport(arg_transport, arg_host, arg_user, &bus); + if (arg_wait || arg_stdio != ARG_STDIO_NONE || (arg_runtime_scope == RUNTIME_SCOPE_USER && arg_transport != BUS_TRANSPORT_LOCAL)) + r = bus_connect_transport(arg_transport, arg_host, arg_runtime_scope, &bus); else - r = bus_connect_transport_systemd(arg_transport, arg_host, arg_user, &bus); + r = bus_connect_transport_systemd(arg_transport, arg_host, arg_runtime_scope, &bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c index 61ec6661e0..097289f6e5 100644 --- a/src/shared/bus-util.c +++ b/src/shared/bus-util.c @@ -269,7 +269,7 @@ int bus_connect_user_systemd(sd_bus **ret_bus) { int bus_connect_transport( BusTransport transport, const char *host, - bool user, + RuntimeScope runtime_scope, sd_bus **ret) { _cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL; @@ -280,19 +280,28 @@ int bus_connect_transport( assert(ret); assert_return((transport == BUS_TRANSPORT_LOCAL) == !host, -EINVAL); - assert_return(transport != BUS_TRANSPORT_REMOTE || !user, -EOPNOTSUPP); + assert_return(transport != BUS_TRANSPORT_REMOTE || runtime_scope == RUNTIME_SCOPE_SYSTEM, -EOPNOTSUPP); switch (transport) { case BUS_TRANSPORT_LOCAL: - if (user) + + switch (runtime_scope) { + + case RUNTIME_SCOPE_USER: r = sd_bus_default_user(&bus); - else { + break; + + case RUNTIME_SCOPE_SYSTEM: if (sd_booted() <= 0) /* Print a friendly message when the local system is actually not running systemd as PID 1. */ return log_error_errno(SYNTHETIC_ERRNO(EHOSTDOWN), "System has not been booted with systemd as init system (PID 1). Can't operate."); r = sd_bus_default_system(&bus); + break; + + default: + assert_not_reached(); } break; @@ -301,10 +310,21 @@ int bus_connect_transport( break; case BUS_TRANSPORT_MACHINE: - if (user) + + switch (runtime_scope) { + + case RUNTIME_SCOPE_USER: r = sd_bus_open_user_machine(&bus, host); - else + break; + + case RUNTIME_SCOPE_SYSTEM: r = sd_bus_open_system_machine(&bus, host); + break; + + default: + assert_not_reached(); + } + break; default: @@ -321,25 +341,34 @@ int bus_connect_transport( return 0; } -int bus_connect_transport_systemd(BusTransport transport, const char *host, bool user, sd_bus **bus) { +int bus_connect_transport_systemd(BusTransport transport, const char *host, RuntimeScope runtime_scope, sd_bus **bus) { assert(transport >= 0); assert(transport < _BUS_TRANSPORT_MAX); assert(bus); assert_return((transport == BUS_TRANSPORT_LOCAL) == !host, -EINVAL); - assert_return(transport == BUS_TRANSPORT_LOCAL || !user, -EOPNOTSUPP); + assert_return(transport == BUS_TRANSPORT_LOCAL || runtime_scope == RUNTIME_SCOPE_SYSTEM, -EOPNOTSUPP); switch (transport) { case BUS_TRANSPORT_LOCAL: - if (user) + switch (runtime_scope) { + + case RUNTIME_SCOPE_USER: return bus_connect_user_systemd(bus); - if (sd_booted() <= 0) - /* Print a friendly message when the local system is actually not running systemd as PID 1. */ - return log_error_errno(SYNTHETIC_ERRNO(EHOSTDOWN), - "System has not been booted with systemd as init system (PID 1). Can't operate."); - return bus_connect_system_systemd(bus); + case RUNTIME_SCOPE_SYSTEM: + if (sd_booted() <= 0) + /* Print a friendly message when the local system is actually not running systemd as PID 1. */ + return log_error_errno(SYNTHETIC_ERRNO(EHOSTDOWN), + "System has not been booted with systemd as init system (PID 1). Can't operate."); + return bus_connect_system_systemd(bus); + + default: + assert_not_reached(); + } + + break; case BUS_TRANSPORT_REMOTE: return sd_bus_open_system_remote(bus, host); diff --git a/src/shared/bus-util.h b/src/shared/bus-util.h index 6489bfc756..81f5d0f152 100644 --- a/src/shared/bus-util.h +++ b/src/shared/bus-util.h @@ -11,6 +11,7 @@ #include "errno-util.h" #include "macro.h" +#include "runtime-scope.h" #include "string-util.h" #include "time-util.h" @@ -36,8 +37,8 @@ int bus_check_peercred(sd_bus *c); int bus_connect_system_systemd(sd_bus **ret_bus); int bus_connect_user_systemd(sd_bus **ret_bus); -int bus_connect_transport(BusTransport transport, const char *host, bool user, sd_bus **bus); -int bus_connect_transport_systemd(BusTransport transport, const char *host, bool user, sd_bus **bus); +int bus_connect_transport(BusTransport transport, const char *host, RuntimeScope runtime_scope, sd_bus **bus); +int bus_connect_transport_systemd(BusTransport transport, const char *host, RuntimeScope runtime_scope, sd_bus **bus); int bus_log_address_error(int r, BusTransport transport); int bus_log_connect_error(int r, BusTransport transport); diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c index 2d2858c3b4..f2c3406995 100644 --- a/src/shared/cgroup-show.c +++ b/src/shared/cgroup-show.c @@ -464,7 +464,7 @@ int show_cgroup_get_path_and_warn( if (r < 0) return log_error_errno(r, "Failed to load machine data: %m"); - r = bus_connect_transport_systemd(BUS_TRANSPORT_LOCAL, NULL, false, &bus); + r = bus_connect_transport_systemd(BUS_TRANSPORT_LOCAL, NULL, RUNTIME_SCOPE_SYSTEM, &bus); if (r < 0) return bus_log_connect_error(r, BUS_TRANSPORT_LOCAL); diff --git a/src/shared/install-printf.c b/src/shared/install-printf.c index e2a4a481ea..3cc709308d 100644 --- a/src/shared/install-printf.c +++ b/src/shared/install-printf.c @@ -98,7 +98,7 @@ static int specifier_last_component(char specifier, const void *data, const char } int install_name_printf( - LookupScope scope, + RuntimeScope scope, const InstallInfo *info, const char *format, char **ret) { diff --git a/src/shared/install-printf.h b/src/shared/install-printf.h index 46a7514504..8c7842ba2c 100644 --- a/src/shared/install-printf.h +++ b/src/shared/install-printf.h @@ -5,7 +5,7 @@ #include "unit-name.h" int install_name_printf( - LookupScope scope, + RuntimeScope scope, const InstallInfo *info, const char *format, char **ret); diff --git a/src/shared/install.c b/src/shared/install.c index bd12259da0..8060dcc251 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -47,7 +47,7 @@ typedef enum SearchFlags { } SearchFlags; typedef struct { - LookupScope scope; + RuntimeScope scope; OrderedHashmap *will_process; OrderedHashmap *have_processed; } InstallContext; @@ -969,7 +969,7 @@ static int find_symlinks( } static int find_symlinks_in_scope( - LookupScope scope, + RuntimeScope scope, const LookupPaths *lp, const InstallInfo *info, bool match_name, @@ -1003,7 +1003,7 @@ static int find_symlinks_in_scope( } /* look for global enablement of user units */ - if (scope == LOOKUP_SCOPE_USER && path_is_user_config_dir(*p)) { + if (scope == RUNTIME_SCOPE_USER && path_is_user_config_dir(*p)) { *state = UNIT_FILE_ENABLED; return 1; } @@ -1881,7 +1881,7 @@ int unit_file_verify_alias( } static int install_info_symlink_alias( - LookupScope scope, + RuntimeScope scope, InstallInfo *info, const LookupPaths *lp, const char *config_path, @@ -1933,7 +1933,7 @@ static int install_info_symlink_alias( } static int install_info_symlink_wants( - LookupScope scope, + RuntimeScope scope, UnitFileFlags file_flags, InstallInfo *info, const LookupPaths *lp, @@ -2068,7 +2068,7 @@ static int install_info_symlink_link( } static int install_info_apply( - LookupScope scope, + RuntimeScope scope, UnitFileFlags file_flags, InstallInfo *info, const LookupPaths *lp, @@ -2245,7 +2245,7 @@ static int install_context_mark_for_removal( } int unit_file_mask( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names, @@ -2257,7 +2257,7 @@ int unit_file_mask( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); if (r < 0) @@ -2290,7 +2290,7 @@ int unit_file_mask( } int unit_file_unmask( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names, @@ -2305,7 +2305,7 @@ int unit_file_unmask( int r, q; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); if (r < 0) @@ -2405,7 +2405,7 @@ int unit_file_unmask( } int unit_file_link( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **files, @@ -2419,7 +2419,7 @@ int unit_file_link( int r, q; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); if (r < 0) @@ -2513,7 +2513,7 @@ static int path_shall_revert(const LookupPaths *lp, const char *path) { } int unit_file_revert( - LookupScope scope, + RuntimeScope scope, const char *root_dir, char **names, InstallChange **changes, @@ -2669,7 +2669,7 @@ int unit_file_revert( } int unit_file_add_dependency( - LookupScope scope, + RuntimeScope scope, UnitFileFlags file_flags, const char *root_dir, char **names, @@ -2685,7 +2685,7 @@ int unit_file_add_dependency( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(target); assert(IN_SET(dep, UNIT_WANTS, UNIT_REQUIRES)); @@ -2739,7 +2739,7 @@ int unit_file_add_dependency( static int do_unit_file_enable( const LookupPaths *lp, - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *config_path, char **names_or_paths, @@ -2770,7 +2770,7 @@ static int do_unit_file_enable( } int unit_file_enable( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names_or_paths, @@ -2781,7 +2781,7 @@ int unit_file_enable( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); if (r < 0) @@ -2796,7 +2796,7 @@ int unit_file_enable( static int do_unit_file_disable( const LookupPaths *lp, - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *config_path, char **names, @@ -2838,7 +2838,7 @@ static int do_unit_file_disable( } int unit_file_disable( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **files, @@ -2849,7 +2849,7 @@ int unit_file_disable( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); if (r < 0) @@ -2863,7 +2863,7 @@ int unit_file_disable( } static int normalize_linked_files( - LookupScope scope, + RuntimeScope scope, const LookupPaths *lp, char **names_or_paths, char ***ret_names, @@ -2921,7 +2921,7 @@ static int normalize_linked_files( } int unit_file_reenable( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names_or_paths, @@ -2933,7 +2933,7 @@ int unit_file_reenable( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); if (r < 0) @@ -2957,7 +2957,7 @@ int unit_file_reenable( } int unit_file_set_default( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, const char *name, @@ -2971,7 +2971,7 @@ int unit_file_set_default( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(name); if (unit_name_to_type(name) != UNIT_TARGET) /* this also validates the name */ @@ -2992,7 +2992,7 @@ int unit_file_set_default( } int unit_file_get_default( - LookupScope scope, + RuntimeScope scope, const char *root_dir, char **name) { @@ -3003,7 +3003,7 @@ int unit_file_get_default( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(name); r = lookup_paths_init(&lp, scope, 0, root_dir); @@ -3027,7 +3027,7 @@ int unit_file_get_default( } int unit_file_lookup_state( - LookupScope scope, + RuntimeScope scope, const LookupPaths *lp, const char *name, UnitFileState *ret) { @@ -3125,7 +3125,7 @@ int unit_file_lookup_state( } int unit_file_get_state( - LookupScope scope, + RuntimeScope scope, const char *root_dir, const char *name, UnitFileState *ret) { @@ -3134,7 +3134,7 @@ int unit_file_get_state( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(name); r = lookup_paths_init(&lp, scope, 0, root_dir); @@ -3144,7 +3144,7 @@ int unit_file_get_state( return unit_file_lookup_state(scope, &lp, name, ret); } -int unit_file_exists(LookupScope scope, const LookupPaths *lp, const char *name) { +int unit_file_exists(RuntimeScope scope, const LookupPaths *lp, const char *name) { _cleanup_(install_context_done) InstallContext c = { .scope = scope }; int r; @@ -3196,17 +3196,17 @@ static int split_pattern_into_name_and_instances(const char *pattern, char **out return 0; } -static int presets_find_config(LookupScope scope, const char *root_dir, char ***files) { +static int presets_find_config(RuntimeScope scope, const char *root_dir, char ***files) { static const char* const system_dirs[] = {CONF_PATHS("systemd/system-preset"), NULL}; static const char* const user_dirs[] = {CONF_PATHS_USR("systemd/user-preset"), NULL}; const char* const* dirs; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); - if (scope == LOOKUP_SCOPE_SYSTEM) + if (scope == RUNTIME_SCOPE_SYSTEM) dirs = system_dirs; - else if (IN_SET(scope, LOOKUP_SCOPE_GLOBAL, LOOKUP_SCOPE_USER)) + else if (IN_SET(scope, RUNTIME_SCOPE_GLOBAL, RUNTIME_SCOPE_USER)) dirs = user_dirs; else assert_not_reached(); @@ -3214,13 +3214,13 @@ static int presets_find_config(LookupScope scope, const char *root_dir, char *** return conf_files_list_strv(files, ".preset", root_dir, 0, dirs); } -static int read_presets(LookupScope scope, const char *root_dir, UnitFilePresets *presets) { +static int read_presets(RuntimeScope scope, const char *root_dir, UnitFilePresets *presets) { _cleanup_(unit_file_presets_freep) UnitFilePresets ps = {}; _cleanup_strv_free_ char **files = NULL; int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(presets); r = presets_find_config(scope, root_dir, &files); @@ -3394,7 +3394,7 @@ static int query_presets(const char *name, const UnitFilePresets *presets, char } } -int unit_file_query_preset(LookupScope scope, const char *root_dir, const char *name, UnitFilePresets *cached) { +int unit_file_query_preset(RuntimeScope scope, const char *root_dir, const char *name, UnitFilePresets *cached) { _cleanup_(unit_file_presets_freep) UnitFilePresets tmp = {}; int r; @@ -3458,7 +3458,7 @@ static int execute_preset( } static int preset_prepare_one( - LookupScope scope, + RuntimeScope scope, InstallContext *plus, InstallContext *minus, LookupPaths *lp, @@ -3511,7 +3511,7 @@ static int preset_prepare_one( } int unit_file_preset( - LookupScope scope, + RuntimeScope scope, UnitFileFlags file_flags, const char *root_dir, char **names, @@ -3526,7 +3526,7 @@ int unit_file_preset( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(mode < _UNIT_FILE_PRESET_MODE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); @@ -3551,7 +3551,7 @@ int unit_file_preset( } int unit_file_preset_all( - LookupScope scope, + RuntimeScope scope, UnitFileFlags file_flags, const char *root_dir, UnitFilePresetMode mode, @@ -3565,7 +3565,7 @@ int unit_file_preset_all( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(mode < _UNIT_FILE_PRESET_MODE_MAX); r = lookup_paths_init(&lp, scope, 0, root_dir); @@ -3626,7 +3626,7 @@ Hashmap* unit_file_list_free(Hashmap *h) { DEFINE_TRIVIAL_CLEANUP_FUNC(UnitFileList*, unit_file_list_free_one); int unit_file_get_list( - LookupScope scope, + RuntimeScope scope, const char *root_dir, Hashmap *h, char **states, @@ -3636,7 +3636,7 @@ int unit_file_get_list( int r; assert(scope >= 0); - assert(scope < _LOOKUP_SCOPE_MAX); + assert(scope < _RUNTIME_SCOPE_MAX); assert(h); r = lookup_paths_init(&lp, scope, 0, root_dir); diff --git a/src/shared/install.h b/src/shared/install.h index 0abc73897e..0f9724f999 100644 --- a/src/shared/install.h +++ b/src/shared/install.h @@ -102,28 +102,28 @@ struct InstallInfo { }; int unit_file_enable( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names_or_paths, InstallChange **changes, size_t *n_changes); int unit_file_disable( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names, InstallChange **changes, size_t *n_changes); int unit_file_reenable( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names_or_paths, InstallChange **changes, size_t *n_changes); int unit_file_preset( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names, @@ -131,52 +131,52 @@ int unit_file_preset( InstallChange **changes, size_t *n_changes); int unit_file_preset_all( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, UnitFilePresetMode mode, InstallChange **changes, size_t *n_changes); int unit_file_mask( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names, InstallChange **changes, size_t *n_changes); int unit_file_unmask( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names, InstallChange **changes, size_t *n_changes); int unit_file_link( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **files, InstallChange **changes, size_t *n_changes); int unit_file_revert( - LookupScope scope, + RuntimeScope scope, const char *root_dir, char **names, InstallChange **changes, size_t *n_changes); int unit_file_set_default( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, const char *name, InstallChange **changes, size_t *n_changes); int unit_file_get_default( - LookupScope scope, + RuntimeScope scope, const char *root_dir, char **name); int unit_file_add_dependency( - LookupScope scope, + RuntimeScope scope, UnitFileFlags flags, const char *root_dir, char **names, @@ -186,15 +186,15 @@ int unit_file_add_dependency( size_t *n_changes); int unit_file_lookup_state( - LookupScope scope, + RuntimeScope scope, const LookupPaths *paths, const char *name, UnitFileState *ret); -int unit_file_get_state(LookupScope scope, const char *root_dir, const char *filename, UnitFileState *ret); -int unit_file_exists(LookupScope scope, const LookupPaths *paths, const char *name); +int unit_file_get_state(RuntimeScope scope, const char *root_dir, const char *filename, UnitFileState *ret); +int unit_file_exists(RuntimeScope scope, const LookupPaths *paths, const char *name); -int unit_file_get_list(LookupScope scope, const char *root_dir, Hashmap *h, char **states, char **patterns); +int unit_file_get_list(RuntimeScope scope, const char *root_dir, Hashmap *h, char **states, char **patterns); Hashmap* unit_file_list_free(Hashmap *h); InstallChangeType install_changes_add(InstallChange **changes, size_t *n_changes, InstallChangeType type, const char *path, const char *source); @@ -217,7 +217,7 @@ typedef struct { } UnitFilePresets; void unit_file_presets_freep(UnitFilePresets *p); -int unit_file_query_preset(LookupScope scope, const char *root_dir, const char *name, UnitFilePresets *cached); +int unit_file_query_preset(RuntimeScope scope, const char *root_dir, const char *name, UnitFilePresets *cached); const char *unit_file_state_to_string(UnitFileState s) _const_; UnitFileState unit_file_state_from_string(const char *s) _pure_; diff --git a/src/shared/specifier.c b/src/shared/specifier.c index 05f5b28bb6..200e4ad9b8 100644 --- a/src/shared/specifier.c +++ b/src/shared/specifier.c @@ -334,15 +334,15 @@ int specifier_os_image_version(char specifier, const void *data, const char *roo } int specifier_group_name(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - LookupScope scope = PTR_TO_INT(data); + RuntimeScope scope = PTR_TO_INT(data); char *t; assert(ret); - if (scope == LOOKUP_SCOPE_GLOBAL) + if (scope == RUNTIME_SCOPE_GLOBAL) return -EINVAL; - t = gid_to_name(scope == LOOKUP_SCOPE_USER ? getgid() : 0); + t = gid_to_name(scope == RUNTIME_SCOPE_USER ? getgid() : 0); if (!t) return -ENOMEM; @@ -351,15 +351,15 @@ int specifier_group_name(char specifier, const void *data, const char *root, con } int specifier_group_id(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - LookupScope scope = PTR_TO_INT(data); + RuntimeScope scope = PTR_TO_INT(data); gid_t gid; assert(ret); - if (scope == LOOKUP_SCOPE_GLOBAL) + if (scope == RUNTIME_SCOPE_GLOBAL) return -EINVAL; - gid = scope == LOOKUP_SCOPE_USER ? getgid() : 0; + gid = scope == RUNTIME_SCOPE_USER ? getgid() : 0; if (asprintf(ret, UID_FMT, gid) < 0) return -ENOMEM; @@ -368,16 +368,16 @@ int specifier_group_id(char specifier, const void *data, const char *root, const } int specifier_user_name(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - LookupScope scope = PTR_TO_INT(data); + RuntimeScope scope = PTR_TO_INT(data); uid_t uid; char *t; assert(ret); - if (scope == LOOKUP_SCOPE_GLOBAL) + if (scope == RUNTIME_SCOPE_GLOBAL) return -EINVAL; - uid = scope == LOOKUP_SCOPE_USER ? getuid() : 0; + uid = scope == RUNTIME_SCOPE_USER ? getuid() : 0; /* If we are UID 0 (root), this will not result in NSS, otherwise it might. This is good, as we want * to be able to run this in PID 1, where our user ID is 0, but where NSS lookups are not allowed. @@ -395,15 +395,15 @@ int specifier_user_name(char specifier, const void *data, const char *root, cons } int specifier_user_id(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - LookupScope scope = PTR_TO_INT(data); + RuntimeScope scope = PTR_TO_INT(data); uid_t uid; assert(ret); - if (scope == LOOKUP_SCOPE_GLOBAL) + if (scope == RUNTIME_SCOPE_GLOBAL) return -EINVAL; - uid = scope == LOOKUP_SCOPE_USER ? getuid() : 0; + uid = scope == RUNTIME_SCOPE_USER ? getuid() : 0; if (asprintf(ret, UID_FMT, uid) < 0) return -ENOMEM; diff --git a/src/stdio-bridge/stdio-bridge.c b/src/stdio-bridge/stdio-bridge.c index 6e8f2bbe3c..1b2c00734a 100644 --- a/src/stdio-bridge/stdio-bridge.c +++ b/src/stdio-bridge/stdio-bridge.c @@ -23,7 +23,7 @@ static const char *arg_bus_path = DEFAULT_BUS_PATH; static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; -static bool arg_user = false; +static RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; static int help(void) { printf("%s [OPTIONS...]\n\n" @@ -73,11 +73,11 @@ static int parse_argv(int argc, char *argv[]) { return version(); case ARG_USER: - arg_user = true; + arg_runtime_scope = RUNTIME_SCOPE_USER; break; case ARG_SYSTEM: - arg_user = false; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; break; case 'p': @@ -133,7 +133,7 @@ static int run(int argc, char *argv[]) { return log_error_errno(r, "Failed to allocate bus: %m"); if (arg_transport == BUS_TRANSPORT_MACHINE) - r = bus_set_address_machine(a, arg_user, arg_bus_path); + r = bus_set_address_machine(a, arg_runtime_scope, arg_bus_path); else r = sd_bus_set_address(a, arg_bus_path); if (r < 0) diff --git a/src/systemctl/systemctl-add-dependency.c b/src/systemctl/systemctl-add-dependency.c index 68968a783c..4bbcd7a13b 100644 --- a/src/systemctl/systemctl-add-dependency.c +++ b/src/systemctl/systemctl-add-dependency.c @@ -37,7 +37,7 @@ int verb_add_dependency(int argc, char *argv[], void *userdata) { assert_not_reached(); if (install_client_side()) { - r = unit_file_add_dependency(arg_scope, unit_file_flags_from_args(), arg_root, names, target, dep, &changes, &n_changes); + r = unit_file_add_dependency(arg_runtime_scope, unit_file_flags_from_args(), arg_root, names, target, dep, &changes, &n_changes); install_changes_dump(r, "add dependency on", changes, n_changes, arg_quiet); if (r > 0) diff --git a/src/systemctl/systemctl-edit.c b/src/systemctl/systemctl-edit.c index df01667920..c07112b764 100644 --- a/src/systemctl/systemctl-edit.c +++ b/src/systemctl/systemctl-edit.c @@ -37,7 +37,7 @@ int verb_cat(int argc, char *argv[], void *userdata) { if (arg_transport != BUS_TRANSPORT_LOCAL) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Cannot remotely cat units."); - r = lookup_paths_init_or_warn(&lp, arg_scope, 0, arg_root); + r = lookup_paths_init_or_warn(&lp, arg_runtime_scope, 0, arg_root); if (r < 0) return r; @@ -99,7 +99,7 @@ int verb_cat(int argc, char *argv[], void *userdata) { ansi_highlight_red(), ansi_highlight_red(), ansi_highlight_red(), - arg_scope == LOOKUP_SCOPE_SYSTEM ? "" : " --user", + arg_runtime_scope == RUNTIME_SCOPE_SYSTEM ? "" : " --user", ansi_normal()); r = cat_files(fragment_path, dropin_paths, 0); @@ -452,7 +452,7 @@ static int find_paths_to_edit( if (!suffix) return log_oom(); - r = lookup_paths_init(&lp, arg_scope, 0, arg_root); + r = lookup_paths_init(&lp, arg_runtime_scope, 0, arg_root); if (r < 0) return r; @@ -478,8 +478,8 @@ static int find_paths_to_edit( if (!path) { if (!arg_force) { log_info("Run 'systemctl edit%s --force --full %s' to create a new unit.", - arg_scope == LOOKUP_SCOPE_GLOBAL ? " --global" : - arg_scope == LOOKUP_SCOPE_USER ? " --user" : "", + arg_runtime_scope == RUNTIME_SCOPE_GLOBAL ? " --global" : + arg_runtime_scope == RUNTIME_SCOPE_USER ? " --user" : "", *name); return -ENOENT; } @@ -595,7 +595,7 @@ int verb_edit(int argc, char *argv[], void *userdata) { if (arg_transport != BUS_TRANSPORT_LOCAL) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Cannot edit units remotely."); - r = lookup_paths_init_or_warn(&lp, arg_scope, 0, arg_root); + r = lookup_paths_init_or_warn(&lp, arg_runtime_scope, 0, arg_root); if (r < 0) return r; diff --git a/src/systemctl/systemctl-enable.c b/src/systemctl/systemctl-enable.c index a9c6f3a742..0cc8cbb6b8 100644 --- a/src/systemctl/systemctl-enable.c +++ b/src/systemctl/systemctl-enable.c @@ -107,24 +107,24 @@ int verb_enable(int argc, char *argv[], void *userdata) { flags = unit_file_flags_from_args(); if (streq(verb, "enable")) { - r = unit_file_enable(arg_scope, flags, arg_root, names, &changes, &n_changes); + r = unit_file_enable(arg_runtime_scope, flags, arg_root, names, &changes, &n_changes); carries_install_info = r; } else if (streq(verb, "disable")) { - r = unit_file_disable(arg_scope, flags, arg_root, names, &changes, &n_changes); + r = unit_file_disable(arg_runtime_scope, flags, arg_root, names, &changes, &n_changes); carries_install_info = r; } else if (streq(verb, "reenable")) { - r = unit_file_reenable(arg_scope, flags, arg_root, names, &changes, &n_changes); + r = unit_file_reenable(arg_runtime_scope, flags, arg_root, names, &changes, &n_changes); carries_install_info = r; } else if (streq(verb, "link")) - r = unit_file_link(arg_scope, flags, arg_root, names, &changes, &n_changes); + r = unit_file_link(arg_runtime_scope, flags, arg_root, names, &changes, &n_changes); else if (streq(verb, "preset")) - r = unit_file_preset(arg_scope, flags, arg_root, names, arg_preset_mode, &changes, &n_changes); + r = unit_file_preset(arg_runtime_scope, flags, arg_root, names, arg_preset_mode, &changes, &n_changes); else if (streq(verb, "mask")) - r = unit_file_mask(arg_scope, flags, arg_root, names, &changes, &n_changes); + r = unit_file_mask(arg_runtime_scope, flags, arg_root, names, &changes, &n_changes); else if (streq(verb, "unmask")) - r = unit_file_unmask(arg_scope, flags, arg_root, names, &changes, &n_changes); + r = unit_file_unmask(arg_runtime_scope, flags, arg_root, names, &changes, &n_changes); else if (streq(verb, "revert")) - r = unit_file_revert(arg_scope, arg_root, names, &changes, &n_changes); + r = unit_file_revert(arg_runtime_scope, arg_root, names, &changes, &n_changes); else assert_not_reached(); @@ -143,7 +143,7 @@ int verb_enable(int argc, char *argv[], void *userdata) { if (STR_IN_SET(verb, "mask", "unmask")) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; - r = lookup_paths_init_or_warn(&lp, arg_scope, 0, arg_root); + r = lookup_paths_init_or_warn(&lp, arg_runtime_scope, 0, arg_root); if (r < 0) return r; @@ -263,7 +263,7 @@ int verb_enable(int argc, char *argv[], void *userdata) { " instance name specified.", special_glyph(SPECIAL_GLYPH_BULLET)); - if (streq(verb, "disable") && arg_scope == LOOKUP_SCOPE_USER && !arg_quiet && !arg_no_warn) { + if (streq(verb, "disable") && arg_runtime_scope == RUNTIME_SCOPE_USER && !arg_quiet && !arg_no_warn) { /* If some of the units are disabled in user scope but still enabled in global scope, * we emit a warning for that. */ @@ -272,7 +272,7 @@ int verb_enable(int argc, char *argv[], void *userdata) { STRV_FOREACH(name, names) { UnitFileState state; - r = unit_file_get_state(LOOKUP_SCOPE_GLOBAL, arg_root, *name, &state); + r = unit_file_get_state(RUNTIME_SCOPE_GLOBAL, arg_root, *name, &state); if (r == -ENOENT) continue; if (r < 0) diff --git a/src/systemctl/systemctl-is-enabled.c b/src/systemctl/systemctl-is-enabled.c index e3bfd62c3f..bc4fc54c5a 100644 --- a/src/systemctl/systemctl-is-enabled.c +++ b/src/systemctl/systemctl-is-enabled.c @@ -18,7 +18,7 @@ static int show_installation_targets_client_side(const char *name) { flags = UNIT_FILE_DRY_RUN | (arg_runtime ? UNIT_FILE_RUNTIME : 0); - r = unit_file_disable(LOOKUP_SCOPE_SYSTEM, flags, NULL, p, &changes, &n_changes); + r = unit_file_disable(RUNTIME_SCOPE_SYSTEM, flags, NULL, p, &changes, &n_changes); if (r < 0) return log_error_errno(r, "Failed to get file links for %s: %m", name); @@ -76,7 +76,7 @@ int verb_is_enabled(int argc, char *argv[], void *userdata) { STRV_FOREACH(name, names) { UnitFileState state; - r = unit_file_get_state(arg_scope, arg_root, *name, &state); + r = unit_file_get_state(arg_runtime_scope, arg_root, *name, &state); if (r == -ENOENT) { if (!arg_quiet) puts("not-found"); diff --git a/src/systemctl/systemctl-list-unit-files.c b/src/systemctl/systemctl-list-unit-files.c index 96b22041f4..72b377cde6 100644 --- a/src/systemctl/systemctl-list-unit-files.c +++ b/src/systemctl/systemctl-list-unit-files.c @@ -100,7 +100,7 @@ static int output_unit_file_list(const UnitFileList *units, unsigned c) { if (show_preset_for_state(u->state)) { const char *unit_preset_str, *on_preset_color; - r = unit_file_query_preset(arg_scope, arg_root, id, &presets); + r = unit_file_query_preset(arg_runtime_scope, arg_root, id, &presets); if (r < 0) { unit_preset_str = "n/a"; on_preset_color = underline ? on_underline : ansi_normal(); @@ -151,7 +151,7 @@ int verb_list_unit_files(int argc, char *argv[], void *userdata) { if (!h) return log_oom(); - r = unit_file_get_list(arg_scope, arg_root, h, arg_states, strv_skip(argv, 1)); + r = unit_file_get_list(arg_runtime_scope, arg_root, h, arg_states, strv_skip(argv, 1)); if (r < 0) { unit_file_list_free(h); return log_error_errno(r, "Failed to get unit file list: %m"); diff --git a/src/systemctl/systemctl-preset-all.c b/src/systemctl/systemctl-preset-all.c index 68dbff5048..ed117e077c 100644 --- a/src/systemctl/systemctl-preset-all.c +++ b/src/systemctl/systemctl-preset-all.c @@ -13,7 +13,7 @@ int verb_preset_all(int argc, char *argv[], void *userdata) { int r; if (install_client_side()) { - r = unit_file_preset_all(arg_scope, unit_file_flags_from_args(), arg_root, arg_preset_mode, &changes, &n_changes); + r = unit_file_preset_all(arg_runtime_scope, unit_file_flags_from_args(), arg_root, arg_preset_mode, &changes, &n_changes); install_changes_dump(r, "preset", changes, n_changes, arg_quiet); if (r > 0) diff --git a/src/systemctl/systemctl-set-default.c b/src/systemctl/systemctl-set-default.c index 7ddba17272..28886c8356 100644 --- a/src/systemctl/systemctl-set-default.c +++ b/src/systemctl/systemctl-set-default.c @@ -49,7 +49,7 @@ static int determine_default(char **ret_name) { int r; if (install_client_side()) { - r = unit_file_get_default(arg_scope, arg_root, ret_name); + r = unit_file_get_default(arg_runtime_scope, arg_root, ret_name); if (r == -ERFKILL) return log_error_errno(r, "Failed to get default target: Unit file is masked."); if (r < 0) @@ -109,7 +109,7 @@ int verb_set_default(int argc, char *argv[], void *userdata) { return log_error_errno(r, "Failed to mangle unit name: %m"); if (install_client_side()) { - r = unit_file_set_default(arg_scope, UNIT_FILE_FORCE, arg_root, unit, &changes, &n_changes); + r = unit_file_set_default(arg_runtime_scope, UNIT_FILE_FORCE, arg_root, unit, &changes, &n_changes); install_changes_dump(r, "set default", changes, n_changes, arg_quiet); if (r < 0) goto finish; diff --git a/src/systemctl/systemctl-show.c b/src/systemctl/systemctl-show.c index 66ae9800d4..f3d09e57e6 100644 --- a/src/systemctl/systemctl-show.c +++ b/src/systemctl/systemctl-show.c @@ -817,7 +817,7 @@ static void print_status_info( getuid(), get_output_flags() | OUTPUT_BEGIN_NEWLINE, SD_JOURNAL_LOCAL_ONLY, - arg_scope == LOOKUP_SCOPE_SYSTEM, + arg_runtime_scope == RUNTIME_SCOPE_SYSTEM, ellipsized); if (i->need_daemon_reload) diff --git a/src/systemctl/systemctl-start-special.c b/src/systemctl/systemctl-start-special.c index fdf2cdfd05..90b1e2ae0d 100644 --- a/src/systemctl/systemctl-start-special.c +++ b/src/systemctl/systemctl-start-special.c @@ -235,10 +235,10 @@ int verb_start_special(int argc, char *argv[], void *userdata) { int verb_start_system_special(int argc, char *argv[], void *userdata) { /* Like start_special above, but raises an error when running in user mode */ - if (arg_scope != LOOKUP_SCOPE_SYSTEM) + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Bad action for %s mode.", - arg_scope == LOOKUP_SCOPE_GLOBAL ? "--global" : "--user"); + arg_runtime_scope == RUNTIME_SCOPE_GLOBAL ? "--global" : "--user"); return verb_start_special(argc, argv, userdata); } diff --git a/src/systemctl/systemctl-start-unit.c b/src/systemctl/systemctl-start-unit.c index 224e831b99..136b98012a 100644 --- a/src/systemctl/systemctl-start-unit.c +++ b/src/systemctl/systemctl-start-unit.c @@ -168,8 +168,8 @@ fail: BUS_ERROR_UNIT_MASKED, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE)) log_error("See %s logs and 'systemctl%s status%s %s' for details.", - arg_scope == LOOKUP_SCOPE_SYSTEM ? "system" : "user", - arg_scope == LOOKUP_SCOPE_SYSTEM ? "" : " --user", + runtime_scope_to_string(arg_runtime_scope), + arg_runtime_scope == RUNTIME_SCOPE_SYSTEM ? "" : " --user", name[0] == '-' ? " --" : "", name); @@ -242,7 +242,7 @@ static const char** make_extra_args(const char *extra_args[static 4]) { assert(extra_args); - if (arg_scope != LOOKUP_SCOPE_SYSTEM) + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) extra_args[n++] = "--user"; if (arg_transport == BUS_TRANSPORT_REMOTE) { diff --git a/src/systemctl/systemctl-sysv-compat.c b/src/systemctl/systemctl-sysv-compat.c index fc73830a07..1bc76031f4 100644 --- a/src/systemctl/systemctl-sysv-compat.c +++ b/src/systemctl/systemctl-sysv-compat.c @@ -117,7 +117,7 @@ int enable_sysv_units(const char *verb, char **args) { /* Processes all SysV units, and reshuffles the array so that afterwards only the native units remain */ - if (arg_scope != LOOKUP_SCOPE_SYSTEM) + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) return 0; if (getenv_bool("SYSTEMCTL_SKIP_SYSV") > 0) @@ -129,7 +129,7 @@ int enable_sysv_units(const char *verb, char **args) { "is-enabled")) return 0; - r = lookup_paths_init_or_warn(&paths, arg_scope, LOOKUP_PATHS_EXCLUDE_GENERATED, arg_root); + r = lookup_paths_init_or_warn(&paths, arg_runtime_scope, LOOKUP_PATHS_EXCLUDE_GENERATED, arg_root); if (r < 0) return r; @@ -159,7 +159,7 @@ int enable_sysv_units(const char *verb, char **args) { if (path_is_absolute(name)) continue; - j = unit_file_exists(arg_scope, &paths, name); + j = unit_file_exists(arg_runtime_scope, &paths, name); if (j < 0 && !IN_SET(j, -ELOOP, -ERFKILL, -EADDRNOTAVAIL)) return log_error_errno(j, "Failed to look up unit file state: %m"); found_native = j != 0; diff --git a/src/systemctl/systemctl-util.c b/src/systemctl/systemctl-util.c index bcad65f8dc..bc1be36bd2 100644 --- a/src/systemctl/systemctl-util.c +++ b/src/systemctl/systemctl-util.c @@ -44,14 +44,10 @@ int acquire_bus(BusFocus focus, sd_bus **ret) { focus = BUS_FULL; if (!buses[focus]) { - bool user; - - user = arg_scope != LOOKUP_SCOPE_SYSTEM; - if (focus == BUS_MANAGER) - r = bus_connect_transport_systemd(arg_transport, arg_host, user, &buses[focus]); + r = bus_connect_transport_systemd(arg_transport, arg_host, arg_runtime_scope, &buses[focus]); else - r = bus_connect_transport(arg_transport, arg_host, user, &buses[focus]); + r = bus_connect_transport(arg_transport, arg_host, arg_runtime_scope, &buses[focus]); if (r < 0) return bus_log_connect_error(r, arg_transport); @@ -73,7 +69,7 @@ void ask_password_agent_open_maybe(void) { if (arg_dry_run) return; - if (arg_scope != LOOKUP_SCOPE_SYSTEM) + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) return; ask_password_agent_open_if_enabled(arg_transport, arg_ask_password); @@ -82,7 +78,7 @@ void ask_password_agent_open_maybe(void) { void polkit_agent_open_maybe(void) { /* Open the polkit agent as a child process if necessary */ - if (arg_scope != LOOKUP_SCOPE_SYSTEM) + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) return; polkit_agent_open_if_enabled(arg_transport, arg_ask_password); @@ -408,7 +404,7 @@ void warn_unit_file_changed(const char *unit) { log_warning("Warning: The unit file, source configuration file or drop-ins of %s changed on disk. Run 'systemctl%s daemon-reload' to reload units.", unit, - arg_scope == LOOKUP_SCOPE_SYSTEM ? "" : " --user"); + arg_runtime_scope == RUNTIME_SCOPE_SYSTEM ? "" : " --user"); } int unit_file_find_path(LookupPaths *lp, const char *unit_name, char **ret_unit_path) { @@ -844,7 +840,7 @@ bool install_client_side(void) { if (!isempty(arg_root)) return true; - if (arg_scope == LOOKUP_SCOPE_GLOBAL) + if (arg_runtime_scope == RUNTIME_SCOPE_GLOBAL) return true; /* Unsupported environment variable, mostly for debugging purposes */ diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 0155036572..862edada08 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -71,7 +71,7 @@ char **arg_properties = NULL; bool arg_all = false; enum dependency arg_dependency = DEPENDENCY_FORWARD; const char *_arg_job_mode = NULL; -LookupScope arg_scope = LOOKUP_SCOPE_SYSTEM; +RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; bool arg_wait = false; bool arg_no_block = false; int arg_legend = -1; /* -1: true, unless --quiet is passed, 1: true */ @@ -646,15 +646,15 @@ static int systemctl_parse_argv(int argc, char *argv[]) { break; case ARG_USER: - arg_scope = LOOKUP_SCOPE_USER; + arg_runtime_scope = RUNTIME_SCOPE_USER; break; case ARG_SYSTEM: - arg_scope = LOOKUP_SCOPE_SYSTEM; + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; break; case ARG_GLOBAL: - arg_scope = LOOKUP_SCOPE_GLOBAL; + arg_runtime_scope = RUNTIME_SCOPE_GLOBAL; break; case ARG_WAIT: @@ -992,10 +992,10 @@ static int systemctl_parse_argv(int argc, char *argv[]) { /* If we are in --user mode, there's no point in talking to PolicyKit or the infra to query system * passwords */ - if (arg_scope != LOOKUP_SCOPE_SYSTEM) + if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) arg_ask_password = false; - if (arg_transport == BUS_TRANSPORT_REMOTE && arg_scope != LOOKUP_SCOPE_SYSTEM) + if (arg_transport == BUS_TRANSPORT_REMOTE && arg_runtime_scope != RUNTIME_SCOPE_SYSTEM) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Cannot access user instance remotely."); diff --git a/src/systemctl/systemctl.h b/src/systemctl/systemctl.h index 59da9e3ddb..8c96ee0b4f 100644 --- a/src/systemctl/systemctl.h +++ b/src/systemctl/systemctl.h @@ -51,7 +51,7 @@ extern char **arg_properties; extern bool arg_all; extern enum dependency arg_dependency; extern const char *_arg_job_mode; -extern LookupScope arg_scope; +extern RuntimeScope arg_runtime_scope; extern bool arg_wait; extern bool arg_no_block; extern int arg_legend; diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c index 7c290a8b0d..42aa123de6 100644 --- a/src/sysv-generator/sysv-generator.c +++ b/src/sysv-generator/sysv-generator.c @@ -745,7 +745,7 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) { if (hashmap_contains(all_services, name)) continue; - r = unit_file_exists(LOOKUP_SCOPE_SYSTEM, lp, name); + r = unit_file_exists(RUNTIME_SCOPE_SYSTEM, lp, name); if (r < 0 && !IN_SET(r, -ELOOP, -ERFKILL, -EADDRNOTAVAIL)) { log_debug_errno(r, "Failed to detect whether %s exists, skipping: %m", name); continue; @@ -889,7 +889,7 @@ static int run(const char *dest, const char *dest_early, const char *dest_late) assert_se(arg_dest = dest_late); - r = lookup_paths_init_or_warn(&lp, LOOKUP_SCOPE_SYSTEM, LOOKUP_PATHS_EXCLUDE_GENERATED, NULL); + r = lookup_paths_init_or_warn(&lp, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_EXCLUDE_GENERATED, NULL); if (r < 0) return r; diff --git a/src/test/test-bpf-firewall.c b/src/test/test-bpf-firewall.c index d655058d3d..c4175bcb0e 100644 --- a/src/test/test-bpf-firewall.c +++ b/src/test/test-bpf-firewall.c @@ -94,7 +94,7 @@ int main(int argc, char *argv[]) { /* The simple tests succeeded. Now let's try full unit-based use-case. */ - assert_se(manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); + assert_se(manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); assert_se(manager_startup(m, NULL, NULL, NULL) >= 0); assert_se(u = unit_new(m, sizeof(Service))); diff --git a/src/test/test-bpf-foreign-programs.c b/src/test/test-bpf-foreign-programs.c index 0445c39855..35c7e0d692 100644 --- a/src/test/test-bpf-foreign-programs.c +++ b/src/test/test-bpf-foreign-programs.c @@ -301,7 +301,7 @@ int main(int argc, char *argv[]) { assert_se(set_unit_path(unit_dir) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); - assert_se(manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); + assert_se(manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); assert_se(manager_startup(m, NULL, NULL, NULL) >= 0); assert_se(test_bpf_cgroup_programs(m, diff --git a/src/test/test-bpf-lsm.c b/src/test/test-bpf-lsm.c index e1df62f1a6..42ea64cd0a 100644 --- a/src/test/test-bpf-lsm.c +++ b/src/test/test-bpf-lsm.c @@ -86,7 +86,7 @@ int main(int argc, char *argv[]) { assert_se(set_unit_path(unit_dir) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); - assert_se(manager_new(LOOKUP_SCOPE_SYSTEM, MANAGER_TEST_RUN_BASIC, &m) >= 0); + assert_se(manager_new(RUNTIME_SCOPE_SYSTEM, MANAGER_TEST_RUN_BASIC, &m) >= 0); assert_se(manager_startup(m, NULL, NULL, NULL) >= 0); /* We need to enable access to the filesystem where the binary is so we diff --git a/src/test/test-cgroup-mask.c b/src/test/test-cgroup-mask.c index 57483f72c2..b26a834530 100644 --- a/src/test/test-cgroup-mask.c +++ b/src/test/test-cgroup-mask.c @@ -42,7 +42,7 @@ TEST_RET(cgroup_mask, .sd_booted = true) { assert_se(get_testdata_dir("units", &unit_dir) >= 0); assert_se(set_unit_path(unit_dir) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); if (IN_SET(r, -EPERM, -EACCES)) { log_error_errno(r, "manager_new: %m"); return log_tests_skipped("cannot create manager"); diff --git a/src/test/test-cgroup-unit-default.c b/src/test/test-cgroup-unit-default.c index 94201a3ccc..62618ce562 100644 --- a/src/test/test-cgroup-unit-default.c +++ b/src/test/test-cgroup-unit-default.c @@ -26,7 +26,7 @@ TEST_RET(default_memory_low, .sd_booted = true) { assert_se(get_testdata_dir("units", &unit_dir) >= 0); assert_se(set_unit_path(unit_dir) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); if (IN_SET(r, -EPERM, -EACCES)) { log_error_errno(r, "manager_new: %m"); return log_tests_skipped("cannot create manager"); diff --git a/src/test/test-emergency-action.c b/src/test/test-emergency-action.c index 36dd1e42e6..b2e6af8d62 100644 --- a/src/test/test-emergency-action.c +++ b/src/test/test-emergency-action.c @@ -6,37 +6,37 @@ TEST(parse_emergency_action) { EmergencyAction x; - assert_se(parse_emergency_action("none", false, &x) == 0); + assert_se(parse_emergency_action("none", RUNTIME_SCOPE_USER, &x) == 0); assert_se(x == EMERGENCY_ACTION_NONE); - assert_se(parse_emergency_action("reboot", false, &x) == -EOPNOTSUPP); - assert_se(parse_emergency_action("reboot-force", false, &x) == -EOPNOTSUPP); - assert_se(parse_emergency_action("reboot-immediate", false, &x) == -EOPNOTSUPP); - assert_se(parse_emergency_action("poweroff", false, &x) == -EOPNOTSUPP); - assert_se(parse_emergency_action("poweroff-force", false, &x) == -EOPNOTSUPP); - assert_se(parse_emergency_action("poweroff-immediate", false, &x) == -EOPNOTSUPP); + assert_se(parse_emergency_action("reboot", RUNTIME_SCOPE_USER, &x) == -EOPNOTSUPP); + assert_se(parse_emergency_action("reboot-force", RUNTIME_SCOPE_USER, &x) == -EOPNOTSUPP); + assert_se(parse_emergency_action("reboot-immediate", RUNTIME_SCOPE_USER, &x) == -EOPNOTSUPP); + assert_se(parse_emergency_action("poweroff", RUNTIME_SCOPE_USER, &x) == -EOPNOTSUPP); + assert_se(parse_emergency_action("poweroff-force", RUNTIME_SCOPE_USER, &x) == -EOPNOTSUPP); + assert_se(parse_emergency_action("poweroff-immediate", RUNTIME_SCOPE_USER, &x) == -EOPNOTSUPP); assert_se(x == EMERGENCY_ACTION_NONE); - assert_se(parse_emergency_action("exit", false, &x) == 0); + assert_se(parse_emergency_action("exit", RUNTIME_SCOPE_USER, &x) == 0); assert_se(x == EMERGENCY_ACTION_EXIT); - assert_se(parse_emergency_action("exit-force", false, &x) == 0); + assert_se(parse_emergency_action("exit-force", RUNTIME_SCOPE_USER, &x) == 0); assert_se(x == EMERGENCY_ACTION_EXIT_FORCE); - assert_se(parse_emergency_action("exit-forcee", false, &x) == -EINVAL); + assert_se(parse_emergency_action("exit-forcee", RUNTIME_SCOPE_USER, &x) == -EINVAL); - assert_se(parse_emergency_action("none", true, &x) == 0); + assert_se(parse_emergency_action("none", RUNTIME_SCOPE_SYSTEM, &x) == 0); assert_se(x == EMERGENCY_ACTION_NONE); - assert_se(parse_emergency_action("reboot", true, &x) == 0); + assert_se(parse_emergency_action("reboot", RUNTIME_SCOPE_SYSTEM, &x) == 0); assert_se(x == EMERGENCY_ACTION_REBOOT); - assert_se(parse_emergency_action("reboot-force", true, &x) == 0); + assert_se(parse_emergency_action("reboot-force", RUNTIME_SCOPE_SYSTEM, &x) == 0); assert_se(x == EMERGENCY_ACTION_REBOOT_FORCE); - assert_se(parse_emergency_action("reboot-immediate", true, &x) == 0); + assert_se(parse_emergency_action("reboot-immediate", RUNTIME_SCOPE_SYSTEM, &x) == 0); assert_se(x == EMERGENCY_ACTION_REBOOT_IMMEDIATE); - assert_se(parse_emergency_action("poweroff", true, &x) == 0); + assert_se(parse_emergency_action("poweroff", RUNTIME_SCOPE_SYSTEM, &x) == 0); assert_se(x == EMERGENCY_ACTION_POWEROFF); - assert_se(parse_emergency_action("poweroff-force", true, &x) == 0); + assert_se(parse_emergency_action("poweroff-force", RUNTIME_SCOPE_SYSTEM, &x) == 0); assert_se(x == EMERGENCY_ACTION_POWEROFF_FORCE); - assert_se(parse_emergency_action("poweroff-immediate", true, &x) == 0); - assert_se(parse_emergency_action("exit", true, &x) == 0); - assert_se(parse_emergency_action("exit-force", true, &x) == 0); - assert_se(parse_emergency_action("exit-forcee", true, &x) == -EINVAL); + assert_se(parse_emergency_action("poweroff-immediate", RUNTIME_SCOPE_SYSTEM, &x) == 0); + assert_se(parse_emergency_action("exit", RUNTIME_SCOPE_SYSTEM, &x) == 0); + assert_se(parse_emergency_action("exit-force", RUNTIME_SCOPE_SYSTEM, &x) == 0); + assert_se(parse_emergency_action("exit-forcee", RUNTIME_SCOPE_SYSTEM, &x) == -EINVAL); assert_se(x == EMERGENCY_ACTION_EXIT_FORCE); } diff --git a/src/test/test-engine.c b/src/test/test-engine.c index 600391094c..cf77e7c022 100644 --- a/src/test/test-engine.c +++ b/src/test/test-engine.c @@ -93,7 +93,7 @@ int main(int argc, char *argv[]) { assert_se(set_unit_path(unit_dir) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); if (manager_errno_skip_test(r)) return log_tests_skipped_errno(r, "manager_new"); assert_se(r >= 0); diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 7df3be4a7c..a91cbb2c67 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -1141,7 +1141,7 @@ typedef struct test_entry { #define entry(x) {x, #x} -static void run_tests(LookupScope scope, char **patterns) { +static void run_tests(RuntimeScope scope, char **patterns) { _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL; _cleanup_free_ char *unit_paths = NULL; _cleanup_(manager_freep) Manager *m = NULL; @@ -1297,7 +1297,7 @@ TEST(run_tests_root) { if (prepare_ns("(test-execute-root)") == 0) { can_unshare = true; - run_tests(LOOKUP_SCOPE_SYSTEM, filters); + run_tests(RUNTIME_SCOPE_SYSTEM, filters); _exit(EXIT_SUCCESS); } } @@ -1306,7 +1306,7 @@ TEST(run_tests_without_unshare) { if (!have_namespaces()) { /* unshare() is already filtered. */ can_unshare = false; - run_tests(LOOKUP_SCOPE_SYSTEM, strv_skip(saved_argv, 1)); + run_tests(RUNTIME_SCOPE_SYSTEM, strv_skip(saved_argv, 1)); return; } @@ -1334,7 +1334,7 @@ TEST(run_tests_without_unshare) { assert_se(errno == EOPNOTSUPP); can_unshare = false; - run_tests(LOOKUP_SCOPE_SYSTEM, filters); + run_tests(RUNTIME_SCOPE_SYSTEM, filters); _exit(EXIT_SUCCESS); } #else @@ -1355,7 +1355,7 @@ TEST(run_tests_unprivileged) { assert_se(capability_bounding_set_drop(0, /* right_now = */ true) >= 0); can_unshare = false; - run_tests(LOOKUP_SCOPE_USER, filters); + run_tests(RUNTIME_SCOPE_USER, filters); _exit(EXIT_SUCCESS); } } diff --git a/src/test/test-install-root.c b/src/test/test-install-root.c index 2868ab07b2..ea8015d33d 100644 --- a/src/test/test-install-root.c +++ b/src/test/test-install-root.c @@ -23,41 +23,41 @@ TEST(basic_mask_and_enable) { InstallChange *changes = NULL; size_t n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "e.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "f.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "e.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "f.service", NULL) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/a.service"); assert_se(write_string_file(p, "[Install]\n" "WantedBy=multi-user.target\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system/b.service"); assert_se(symlink("a.service", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); p = strjoina(root, "/usr/lib/systemd/system/c.service"); assert_se(symlink("/usr/lib/systemd/system/a.service", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); p = strjoina(root, "/usr/lib/systemd/system/d.service"); assert_se(symlink("c.service", p) >= 0); /* This one is interesting, as d follows a relative, then an absolute symlink */ - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_mask(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_mask(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/dev/null")); @@ -67,17 +67,17 @@ TEST(basic_mask_and_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_MASKED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_MASKED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_MASKED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_MASKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_MASKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_MASKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_MASKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_MASKED); /* Enabling a masked unit should fail! */ - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == -ERFKILL); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == -ERFKILL); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_unmask(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_unmask(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/a.service"); @@ -85,7 +85,7 @@ TEST(basic_mask_and_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == 1); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == 1); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service")); @@ -94,18 +94,18 @@ TEST(basic_mask_and_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); /* Enabling it again should succeed but be a NOP */ - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 0); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service"); @@ -113,19 +113,19 @@ TEST(basic_mask_and_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); /* Disabling a disabled unit must succeed but be a NOP */ - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 0); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; /* Let's enable this indirectly via a symlink */ - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("d.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("d.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service")); @@ -134,14 +134,14 @@ TEST(basic_mask_and_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); /* Let's try to reenable */ - assert_se(unit_file_reenable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("b.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_reenable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("b.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service"); @@ -152,24 +152,24 @@ TEST(basic_mask_and_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "b.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "c.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_ALIAS); /* Test masking with relative symlinks */ p = strjoina(root, "/usr/lib/systemd/system/e.service"); assert_se(symlink("../../../../../../dev/null", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "e.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "e.service", &state) >= 0 && state == UNIT_FILE_MASKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "e.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "e.service", &state) >= 0 && state == UNIT_FILE_MASKED); assert_se(unlink(p) == 0); assert_se(symlink("/usr/../dev/null", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "e.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "e.service", &state) >= 0 && state == UNIT_FILE_MASKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "e.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "e.service", &state) >= 0 && state == UNIT_FILE_MASKED); assert_se(unlink(p) == 0); @@ -180,10 +180,10 @@ TEST(basic_mask_and_enable) { "[Install]\n" "WantedBy=x.target\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "f.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "f.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "f.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "f.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("f.service"), &changes, &n_changes) == 1); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("f.service"), &changes, &n_changes) == 1); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/f.service")); @@ -196,7 +196,7 @@ TEST(basic_mask_and_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "f.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "f.service", &state) >= 0 && state == UNIT_FILE_ENABLED); } TEST(linked_units) { @@ -236,9 +236,9 @@ TEST(linked_units) { "[Install]\n" "WantedBy=multi-user.target\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked2.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked3.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked2.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked3.service", NULL) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/linked2.service"); assert_se(symlink("/opt/linked2.service", p) >= 0); @@ -246,12 +246,12 @@ TEST(linked_units) { p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked3.service"); assert_se(symlink("/opt/linked3.service", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked3.service", &state) >= 0 && state == UNIT_FILE_LINKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked3.service", &state) >= 0 && state == UNIT_FILE_LINKED); /* First, let's link the unit into the search path */ - assert_se(unit_file_link(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("/opt/linked.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_link(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("/opt/linked.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/opt/linked.service")); @@ -260,10 +260,10 @@ TEST(linked_units) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked.service", &state) >= 0 && state == UNIT_FILE_LINKED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked.service", &state) >= 0 && state == UNIT_FILE_LINKED); /* Let's unlink it from the search path again */ - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service"); @@ -271,10 +271,10 @@ TEST(linked_units) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked.service", NULL) == -ENOENT); /* Now, let's not just link it, but also enable it */ - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("/opt/linked.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("/opt/linked.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 2); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/linked.service"); q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service"); @@ -293,10 +293,10 @@ TEST(linked_units) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked.service", &state) >= 0 && state == UNIT_FILE_ENABLED); /* And let's unlink it again */ - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 2); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/linked.service"); q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service"); @@ -314,9 +314,9 @@ TEST(linked_units) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "linked.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "linked.service", NULL) == -ENOENT); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked2.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked2.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 2); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/linked2.service"); q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked2.service"); @@ -335,7 +335,7 @@ TEST(linked_units) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked3.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked3.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(startswith(changes[0].path, root)); @@ -357,18 +357,18 @@ TEST(default) { p = strjoina(root, "/usr/lib/systemd/system/test-default.target"); assert_se(symlink("test-default-real.target", p) >= 0); - assert_se(unit_file_get_default(LOOKUP_SCOPE_SYSTEM, root, &def) == -ENOENT); + assert_se(unit_file_get_default(RUNTIME_SCOPE_SYSTEM, root, &def) == -ENOENT); - assert_se(unit_file_set_default(LOOKUP_SCOPE_SYSTEM, 0, root, "idontexist.target", &changes, &n_changes) == -ENOENT); + assert_se(unit_file_set_default(RUNTIME_SCOPE_SYSTEM, 0, root, "idontexist.target", &changes, &n_changes) == -ENOENT); assert_se(n_changes == 1); assert_se(changes[0].type == -ENOENT); assert_se(streq_ptr(changes[0].path, "idontexist.target")); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_default(LOOKUP_SCOPE_SYSTEM, root, &def) == -ENOENT); + assert_se(unit_file_get_default(RUNTIME_SCOPE_SYSTEM, root, &def) == -ENOENT); - assert_se(unit_file_set_default(LOOKUP_SCOPE_SYSTEM, 0, root, "test-default.target", &changes, &n_changes) >= 0); + assert_se(unit_file_set_default(RUNTIME_SCOPE_SYSTEM, 0, root, "test-default.target", &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/test-default-real.target")); @@ -377,7 +377,7 @@ TEST(default) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_default(LOOKUP_SCOPE_SYSTEM, root, &def) >= 0); + assert_se(unit_file_get_default(RUNTIME_SCOPE_SYSTEM, root, &def) >= 0); assert_se(streq_ptr(def, "test-default-real.target")); } @@ -398,7 +398,7 @@ TEST(add_dependency) { p = strjoina(root, "/usr/lib/systemd/system/add-dependency-test-service.service"); assert_se(symlink("real-add-dependency-test-service.service", p) >= 0); - assert_se(unit_file_add_dependency(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("add-dependency-test-service.service"), "add-dependency-test-target.target", UNIT_WANTS, &changes, &n_changes) >= 0); + assert_se(unit_file_add_dependency(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("add-dependency-test-service.service"), "add-dependency-test-target.target", UNIT_WANTS, &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/real-add-dependency-test-service.service")); @@ -416,10 +416,10 @@ TEST(template_enable) { log_info("== %s ==", __func__); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@def.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@foo.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/template@.service"); assert_se(write_string_file(p, @@ -430,16 +430,16 @@ TEST(template_enable) { p = strjoina(root, "/usr/lib/systemd/system/template-symlink@.service"); assert_se(symlink("template@.service", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); log_info("== %s with template@.service enabled ==", __func__); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service")); @@ -448,30 +448,30 @@ TEST(template_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); assert_se(streq(changes[0].path, p)); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); log_info("== %s with template@foo.service enabled ==", __func__); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service")); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@foo.service"); @@ -479,32 +479,32 @@ TEST(template_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); assert_se(streq(changes[0].path, p)); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@quux.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@quux.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@quux.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@quux.service", &state) >= 0 && state == UNIT_FILE_DISABLED); log_info("== %s with template-symlink@quux.service enabled ==", __func__); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template-symlink@quux.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("template-symlink@quux.service"), &changes, &n_changes) >= 0); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service")); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@quux.service"); @@ -512,14 +512,14 @@ TEST(template_enable) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@quux.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@quux.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template@quux.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "template-symlink@quux.service", &state) >= 0 && state == UNIT_FILE_ENABLED); } TEST(indirect) { @@ -528,9 +528,9 @@ TEST(indirect) { UnitFileState state; const char *p; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirecta.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirectb.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirectc.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirecta.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirectb.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirectc.service", &state) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/indirecta.service"); assert_se(write_string_file(p, @@ -545,11 +545,11 @@ TEST(indirect) { p = strjoina(root, "/usr/lib/systemd/system/indirectc.service"); assert_se(symlink("indirecta.service", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirecta.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirectb.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirectc.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirecta.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirectb.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirectc.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/indirectb.service")); @@ -558,11 +558,11 @@ TEST(indirect) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirecta.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirectb.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "indirectc.service", &state) >= 0 && state == UNIT_FILE_ALIAS); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirecta.service", &state) >= 0 && state == UNIT_FILE_INDIRECT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirectb.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "indirectc.service", &state) >= 0 && state == UNIT_FILE_ALIAS); - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/indirectb.service"); @@ -580,8 +580,8 @@ TEST(preset_and_list) { UnitFileList *fl; Hashmap *h; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-yes.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-no.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-yes.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-no.service", &state) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/preset-yes.service"); assert_se(write_string_file(p, @@ -598,10 +598,10 @@ TEST(preset_and_list) { "enable *-yes.*\n" "disable *\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); + assert_se(unit_file_preset(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/preset-yes.service")); @@ -610,10 +610,10 @@ TEST(preset_and_list) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/preset-yes.service"); @@ -621,18 +621,18 @@ TEST(preset_and_list) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-no.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); + assert_se(unit_file_preset(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-no.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(n_changes == 0); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_preset_all(LOOKUP_SCOPE_SYSTEM, 0, root, UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); + assert_se(unit_file_preset_all(RUNTIME_SCOPE_SYSTEM, 0, root, UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(n_changes > 0); @@ -650,17 +650,17 @@ TEST(preset_and_list) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-yes.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "preset-no.service", &state) >= 0 && state == UNIT_FILE_DISABLED); assert_se(h = hashmap_new(&string_hash_ops)); - assert_se(unit_file_get_list(LOOKUP_SCOPE_SYSTEM, root, h, NULL, NULL) >= 0); + assert_se(unit_file_get_list(RUNTIME_SCOPE_SYSTEM, root, h, NULL, NULL) >= 0); p = strjoina(root, "/usr/lib/systemd/system/preset-yes.service"); q = strjoina(root, "/usr/lib/systemd/system/preset-no.service"); HASHMAP_FOREACH(fl, h) { - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, basename(fl->path), &state) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, basename(fl->path), &state) >= 0); assert_se(fl->state == state); if (streq(fl->path, p)) { @@ -684,17 +684,17 @@ TEST(revert) { InstallChange *changes = NULL; size_t n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "xx.service", NULL) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "yy.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "xx.service", NULL) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "yy.service", NULL) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/xx.service"); assert_se(write_string_file(p, "# Empty\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "xx.service", NULL) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "xx.service", &state) >= 0 && state == UNIT_FILE_STATIC); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "xx.service", NULL) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "xx.service", &state) >= 0 && state == UNIT_FILE_STATIC); /* Initially there's nothing to revert */ - assert_se(unit_file_revert(LOOKUP_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_revert(RUNTIME_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 0); install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; @@ -703,7 +703,7 @@ TEST(revert) { assert_se(write_string_file(p, "# Empty override\n", WRITE_STRING_FILE_CREATE) >= 0); /* Revert the override file */ - assert_se(unit_file_revert(LOOKUP_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_revert(RUNTIME_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); assert_se(streq(changes[0].path, p)); @@ -714,7 +714,7 @@ TEST(revert) { assert_se(write_string_file(p, "# Empty dropin\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); /* Revert the dropin file */ - assert_se(unit_file_revert(LOOKUP_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_revert(RUNTIME_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); assert_se(streq(changes[0].path, p)); @@ -732,8 +732,8 @@ TEST(preset_order) { const char *p; UnitFileState state; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-1.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-2.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-1.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-2.service", &state) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/prefix-1.service"); assert_se(write_string_file(p, @@ -751,10 +751,10 @@ TEST(preset_order) { "disable prefix-*.service\n" "enable prefix-2.service\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-1.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); + assert_se(unit_file_preset(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-1.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/prefix-1.service")); @@ -763,36 +763,36 @@ TEST(preset_order) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-2.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); + assert_se(unit_file_preset(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-2.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(n_changes == 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "prefix-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "prefix-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); } TEST(static_instance) { UnitFileState state; const char *p; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "static-instance@.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "static-instance@foo.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "static-instance@.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "static-instance@foo.service", &state) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/static-instance@.service"); assert_se(write_string_file(p, "[Install]\n" "WantedBy=multi-user.target\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "static-instance@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "static-instance@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "static-instance@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "static-instance@foo.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system/static-instance@foo.service"); assert_se(symlink("static-instance@.service", p) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "static-instance@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "static-instance@foo.service", &state) >= 0 && state == UNIT_FILE_STATIC); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "static-instance@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "static-instance@foo.service", &state) >= 0 && state == UNIT_FILE_STATIC); } TEST(with_dropin) { @@ -801,11 +801,11 @@ TEST(with_dropin) { InstallChange *changes = NULL; size_t n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-1.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-4a.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-4b.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-1.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-4a.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-4b.service", &state) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/with-dropin-1.service"); assert_se(write_string_file(p, @@ -817,7 +817,7 @@ TEST(with_dropin) { "[Install]\n" "WantedBy=graphical.target\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/with-dropin-2.service"); assert_se(write_string_file(p, @@ -829,7 +829,7 @@ TEST(with_dropin) { "[Install]\n" "WantedBy=graphical.target\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system/with-dropin-3.service"); assert_se(write_string_file(p, @@ -841,7 +841,7 @@ TEST(with_dropin) { "[Install]\n" "WantedBy=graphical.target\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system/with-dropin-4a.service"); assert_se(write_string_file(p, @@ -853,16 +853,16 @@ TEST(with_dropin) { "[Install]\n" "Also=with-dropin-4b.service\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-4a.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-4a.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system/with-dropin-4b.service"); assert_se(write_string_file(p, "[Install]\n" "WantedBy=multi-user.target\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-4b.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-4b.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-1.service"), &changes, &n_changes) == 1); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-1.service"), &changes, &n_changes) == 1); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(changes[1].type == INSTALL_CHANGE_SYMLINK); @@ -875,8 +875,8 @@ TEST(with_dropin) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2.service"), &changes, &n_changes) == 1); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2.service"), &changes, &n_changes) == 1); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(changes[1].type == INSTALL_CHANGE_SYMLINK); @@ -889,8 +889,8 @@ TEST(with_dropin) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3.service"), &changes, &n_changes) == 1); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3.service"), &changes, &n_changes) == 1); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(changes[1].type == INSTALL_CHANGE_SYMLINK); @@ -903,8 +903,8 @@ TEST(with_dropin) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-4a.service"), &changes, &n_changes) == 2); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-4a.service"), &changes, &n_changes) == 2); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(changes[1].type == INSTALL_CHANGE_SYMLINK); @@ -917,11 +917,11 @@ TEST(with_dropin) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-4a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-4b.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-4a.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-4b.service", &state) >= 0 && state == UNIT_FILE_ENABLED); } TEST(with_dropin_template) { @@ -930,9 +930,9 @@ TEST(with_dropin_template) { InstallChange *changes = NULL; size_t n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-1@.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2@.service", &state) == -ENOENT); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3@.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-1@.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2@.service", &state) == -ENOENT); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3@.service", &state) == -ENOENT); p = strjoina(root, "/usr/lib/systemd/system/with-dropin-1@.service"); assert_se(write_string_file(p, @@ -944,7 +944,7 @@ TEST(with_dropin_template) { "[Install]\n" "WantedBy=graphical.target\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-1@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-1@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system/with-dropin-2@.service"); assert_se(write_string_file(p, @@ -956,7 +956,7 @@ TEST(with_dropin_template) { "[Install]\n" "WantedBy=graphical.target\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system/with-dropin-3@.service"); assert_se(write_string_file(p, @@ -969,9 +969,9 @@ TEST(with_dropin_template) { "[Install]\n" "DefaultInstance=instance-2\n", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-1@instance-1.service"), &changes, &n_changes) == 1); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-1@instance-1.service"), &changes, &n_changes) == 1); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(changes[1].type == INSTALL_CHANGE_SYMLINK); @@ -984,7 +984,7 @@ TEST(with_dropin_template) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-1.service"), &changes, &n_changes) == 1); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-1.service"), &changes, &n_changes) == 1); assert_se(n_changes == 2); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(changes[1].type == INSTALL_CHANGE_SYMLINK); @@ -997,7 +997,7 @@ TEST(with_dropin_template) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-2.service"), &changes, &n_changes) == 1); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-2.service"), &changes, &n_changes) == 1); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-2@.service")); @@ -1006,7 +1006,7 @@ TEST(with_dropin_template) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3@.service"), &changes, &n_changes) == 1); + assert_se(unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3@.service"), &changes, &n_changes) == 1); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-3@.service")); @@ -1015,11 +1015,11 @@ TEST(with_dropin_template) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-1@instance-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2@instance-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2@instance-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3@instance-1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3@instance-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-1@instance-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2@instance-1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-2@instance-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3@instance-1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "with-dropin-3@instance-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED); } TEST(preset_multiple_instances) { @@ -1035,7 +1035,7 @@ TEST(preset_multiple_instances) { "DefaultInstance=def\n" "WantedBy=multi-user.target\n", WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@.service", &state) >= 0 && state == UNIT_FILE_DISABLED); p = strjoina(root, "/usr/lib/systemd/system-preset/test.preset"); assert_se(write_string_file(p, @@ -1043,11 +1043,11 @@ TEST(preset_multiple_instances) { "enable emptylist@.service\n" /* This line ensures the old functionality for templated unit still works */ "disable *\n" , WRITE_STRING_FILE_CREATE) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bar0.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@bar0.service", &state) >= 0 && state == UNIT_FILE_DISABLED); /* Preset a single instantiated unit specified in the list */ - assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("foo@bar0.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bar0.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_preset(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("foo@bar0.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@bar0.service", &state) >= 0 && state == UNIT_FILE_ENABLED); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_SYMLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/foo@bar0.service"); @@ -1055,7 +1055,7 @@ TEST(preset_multiple_instances) { install_changes_free(changes, n_changes); changes = NULL; n_changes = 0; - assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("foo@bar0.service"), &changes, &n_changes) >= 0); + assert_se(unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, root, STRV_MAKE("foo@bar0.service"), &changes, &n_changes) >= 0); assert_se(n_changes == 1); assert_se(changes[0].type == INSTALL_CHANGE_UNLINK); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/foo@bar0.service"); @@ -1064,17 +1064,17 @@ TEST(preset_multiple_instances) { changes = NULL; n_changes = 0; /* Check for preset-all case, only instances on the list should be enabled, not including the default instance */ - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bar1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bartest.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@bar1.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@bartest.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_preset_all(LOOKUP_SCOPE_SYSTEM, 0, root, UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); + assert_se(unit_file_preset_all(RUNTIME_SCOPE_SYSTEM, 0, root, UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(n_changes > 0); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bar0.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bar1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); - assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bartest.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@bar0.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@bar1.service", &state) >= 0 && state == UNIT_FILE_ENABLED); + assert_se(unit_file_get_state(RUNTIME_SCOPE_SYSTEM, root, "foo@bartest.service", &state) >= 0 && state == UNIT_FILE_ENABLED); install_changes_free(changes, n_changes); } diff --git a/src/test/test-install.c b/src/test/test-install.c index c9b08d7b6a..eb02795096 100644 --- a/src/test/test-install.c +++ b/src/test/test-install.c @@ -32,13 +32,13 @@ int main(int argc, char* argv[]) { test_setup_logging(LOG_DEBUG); h = hashmap_new(&string_hash_ops); - r = unit_file_get_list(LOOKUP_SCOPE_SYSTEM, NULL, h, NULL, NULL); + r = unit_file_get_list(RUNTIME_SCOPE_SYSTEM, NULL, h, NULL, NULL); assert_se(r == 0); HASHMAP_FOREACH(p, h) { UnitFileState s = _UNIT_FILE_STATE_INVALID; - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(p->path), &s); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(p->path), &s); assert_se((r < 0 && p->state == UNIT_FILE_BAD) || (p->state == s)); @@ -52,18 +52,18 @@ int main(int argc, char* argv[]) { log_info("/*** enable **/"); - r = unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); log_info("/*** enable2 **/"); - r = unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, files[0], &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, files[0], &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_ENABLED); @@ -71,13 +71,13 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, files[0], &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, files[0], &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_DISABLED); @@ -85,16 +85,16 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_mask(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_mask(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); log_info("/*** mask2 ***/"); - r = unit_file_mask(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_mask(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, files[0], &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, files[0], &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_MASKED); @@ -102,16 +102,16 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_unmask(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_unmask(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); log_info("/*** unmask2 ***/"); - r = unit_file_unmask(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_unmask(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, files[0], &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, files[0], &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_DISABLED); @@ -119,13 +119,13 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_mask(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_mask(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, files[0], &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, files[0], &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_MASKED); @@ -133,16 +133,16 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); log_info("/*** disable2 ***/"); - r = unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, files[0], &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, files[0], &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_MASKED); @@ -150,13 +150,13 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_unmask(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); + r = unit_file_unmask(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, files[0], &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, files[0], &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_DISABLED); @@ -164,13 +164,13 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); + r = unit_file_enable(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_ENABLED); @@ -178,26 +178,26 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, NULL, STRV_MAKE(basename(files2[0])), &changes, &n_changes); + r = unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, NULL, STRV_MAKE(basename(files2[0])), &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); assert_se(r < 0); log_info("/*** link files2 ***/"); changes = NULL; n_changes = 0; - r = unit_file_link(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); + r = unit_file_link(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_LINKED); @@ -205,26 +205,26 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, NULL, STRV_MAKE(basename(files2[0])), &changes, &n_changes); + r = unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, NULL, STRV_MAKE(basename(files2[0])), &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); assert_se(r < 0); log_info("/*** link files2 ***/"); changes = NULL; n_changes = 0; - r = unit_file_link(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); + r = unit_file_link(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_LINKED); @@ -232,13 +232,13 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_reenable(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); + r = unit_file_reenable(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files2, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_ENABLED); @@ -246,25 +246,25 @@ int main(int argc, char* argv[]) { changes = NULL; n_changes = 0; - r = unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, NULL, STRV_MAKE(basename(files2[0])), &changes, &n_changes); + r = unit_file_disable(RUNTIME_SCOPE_SYSTEM, 0, NULL, STRV_MAKE(basename(files2[0])), &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files2[0]), &state); assert_se(r < 0); log_info("/*** preset files ***/"); changes = NULL; n_changes = 0; - r = unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, NULL, (char**) files, UNIT_FILE_PRESET_FULL, &changes, &n_changes); + r = unit_file_preset(RUNTIME_SCOPE_SYSTEM, 0, NULL, (char**) files, UNIT_FILE_PRESET_FULL, &changes, &n_changes); assert_se(r >= 0); dump_changes(changes, n_changes); install_changes_free(changes, n_changes); - r = unit_file_get_state(LOOKUP_SCOPE_SYSTEM, NULL, basename(files[0]), &state); + r = unit_file_get_state(RUNTIME_SCOPE_SYSTEM, NULL, basename(files[0]), &state); assert_se(r >= 0); assert_se(state == UNIT_FILE_ENABLED); diff --git a/src/test/test-load-fragment.c b/src/test/test-load-fragment.c index f22fa42ce3..39fcdcd94a 100644 --- a/src/test/test-load-fragment.c +++ b/src/test/test-load-fragment.c @@ -47,7 +47,7 @@ TEST_RET(unit_file_get_set) { h = hashmap_new(&string_hash_ops); assert_se(h); - r = unit_file_get_list(LOOKUP_SCOPE_SYSTEM, NULL, h, NULL, NULL); + r = unit_file_get_list(RUNTIME_SCOPE_SYSTEM, NULL, h, NULL, NULL); if (IN_SET(r, -EPERM, -EACCES)) return log_tests_skipped_errno(r, "unit_file_get_list"); @@ -106,7 +106,7 @@ TEST(config_parse_exec) { _cleanup_(manager_freep) Manager *m = NULL; _cleanup_(unit_freep) Unit *u = NULL; - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); if (manager_errno_skip_test(r)) { log_notice_errno(r, "Skipping test: manager_new: %m"); return; @@ -465,7 +465,7 @@ TEST(config_parse_log_extra_fields) { _cleanup_(unit_freep) Unit *u = NULL; ExecContext c = {}; - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); if (manager_errno_skip_test(r)) { log_notice_errno(r, "Skipping test: manager_new: %m"); return; @@ -550,56 +550,56 @@ TEST(install_printf, .sd_booted = true) { strcpy(i.path, d2); \ } while (false) - expect(LOOKUP_SCOPE_SYSTEM, i, "%n", "name.service"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%N", "name"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%p", "name"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%i", ""); - expect(LOOKUP_SCOPE_SYSTEM, i, "%j", "name"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%g", "root"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%G", "0"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%u", "root"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%U", "0"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%n", "name.service"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%N", "name"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%p", "name"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%i", ""); + expect(RUNTIME_SCOPE_SYSTEM, i, "%j", "name"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%g", "root"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%G", "0"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%u", "root"); + expect(RUNTIME_SCOPE_SYSTEM, i, "%U", "0"); - expect(LOOKUP_SCOPE_SYSTEM, i, "%m", mid); - expect(LOOKUP_SCOPE_SYSTEM, i, "%b", bid); - expect(LOOKUP_SCOPE_SYSTEM, i, "%H", host); + expect(RUNTIME_SCOPE_SYSTEM, i, "%m", mid); + expect(RUNTIME_SCOPE_SYSTEM, i, "%b", bid); + expect(RUNTIME_SCOPE_SYSTEM, i, "%H", host); - expect(LOOKUP_SCOPE_SYSTEM, i2, "%g", "root"); - expect(LOOKUP_SCOPE_SYSTEM, i2, "%G", "0"); - expect(LOOKUP_SCOPE_SYSTEM, i2, "%u", "root"); - expect(LOOKUP_SCOPE_SYSTEM, i2, "%U", "0"); + expect(RUNTIME_SCOPE_SYSTEM, i2, "%g", "root"); + expect(RUNTIME_SCOPE_SYSTEM, i2, "%G", "0"); + expect(RUNTIME_SCOPE_SYSTEM, i2, "%u", "root"); + expect(RUNTIME_SCOPE_SYSTEM, i2, "%U", "0"); - expect(LOOKUP_SCOPE_USER, i2, "%g", group); - expect(LOOKUP_SCOPE_USER, i2, "%G", gid); - expect(LOOKUP_SCOPE_USER, i2, "%u", user); - expect(LOOKUP_SCOPE_USER, i2, "%U", uid); + expect(RUNTIME_SCOPE_USER, i2, "%g", group); + expect(RUNTIME_SCOPE_USER, i2, "%G", gid); + expect(RUNTIME_SCOPE_USER, i2, "%u", user); + expect(RUNTIME_SCOPE_USER, i2, "%U", uid); /* gcc-12.0.1-0.9.fc36.x86_64 insist that streq(…, NULL) is called, * even though the call is inside of a conditional where the pointer is checked. :( */ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wnonnull" - expect(LOOKUP_SCOPE_GLOBAL, i2, "%g", NULL); - expect(LOOKUP_SCOPE_GLOBAL, i2, "%G", NULL); - expect(LOOKUP_SCOPE_GLOBAL, i2, "%u", NULL); - expect(LOOKUP_SCOPE_GLOBAL, i2, "%U", NULL); + expect(RUNTIME_SCOPE_GLOBAL, i2, "%g", NULL); + expect(RUNTIME_SCOPE_GLOBAL, i2, "%G", NULL); + expect(RUNTIME_SCOPE_GLOBAL, i2, "%u", NULL); + expect(RUNTIME_SCOPE_GLOBAL, i2, "%U", NULL); #pragma GCC diagnostic pop - expect(LOOKUP_SCOPE_SYSTEM, i3, "%n", "name@inst.service"); - expect(LOOKUP_SCOPE_SYSTEM, i3, "%N", "name@inst"); - expect(LOOKUP_SCOPE_SYSTEM, i3, "%p", "name"); - expect(LOOKUP_SCOPE_USER, i3, "%g", group); - expect(LOOKUP_SCOPE_USER, i3, "%G", gid); - expect(LOOKUP_SCOPE_USER, i3, "%u", user); - expect(LOOKUP_SCOPE_USER, i3, "%U", uid); + expect(RUNTIME_SCOPE_SYSTEM, i3, "%n", "name@inst.service"); + expect(RUNTIME_SCOPE_SYSTEM, i3, "%N", "name@inst"); + expect(RUNTIME_SCOPE_SYSTEM, i3, "%p", "name"); + expect(RUNTIME_SCOPE_USER, i3, "%g", group); + expect(RUNTIME_SCOPE_USER, i3, "%G", gid); + expect(RUNTIME_SCOPE_USER, i3, "%u", user); + expect(RUNTIME_SCOPE_USER, i3, "%U", uid); - expect(LOOKUP_SCOPE_SYSTEM, i3, "%m", mid); - expect(LOOKUP_SCOPE_SYSTEM, i3, "%b", bid); - expect(LOOKUP_SCOPE_SYSTEM, i3, "%H", host); + expect(RUNTIME_SCOPE_SYSTEM, i3, "%m", mid); + expect(RUNTIME_SCOPE_SYSTEM, i3, "%b", bid); + expect(RUNTIME_SCOPE_SYSTEM, i3, "%H", host); - expect(LOOKUP_SCOPE_USER, i4, "%g", group); - expect(LOOKUP_SCOPE_USER, i4, "%G", gid); - expect(LOOKUP_SCOPE_USER, i4, "%u", user); - expect(LOOKUP_SCOPE_USER, i4, "%U", uid); + expect(RUNTIME_SCOPE_USER, i4, "%g", group); + expect(RUNTIME_SCOPE_USER, i4, "%G", gid); + expect(RUNTIME_SCOPE_USER, i4, "%u", user); + expect(RUNTIME_SCOPE_USER, i4, "%U", uid); } static uint64_t make_cap(int cap) { @@ -828,7 +828,7 @@ TEST(config_parse_unit_env_file) { _cleanup_strv_free_ char **files = NULL; int r; - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); if (manager_errno_skip_test(r)) { log_notice_errno(r, "Skipping test: manager_new: %m"); return; @@ -961,7 +961,7 @@ TEST(unit_is_recursive_template_dependency) { Unit *u; int r; - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); if (manager_errno_skip_test(r)) { log_notice_errno(r, "Skipping test: manager_new: %m"); return; @@ -1055,7 +1055,7 @@ TEST(config_parse_open_file) { _cleanup_(open_file_freep) OpenFile *of = NULL; int r; - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); if (manager_errno_skip_test(r)) { log_notice_errno(r, "Skipping test: manager_new: %m"); return; diff --git a/src/test/test-path-lookup.c b/src/test/test-path-lookup.c index c98a1f4b73..431a85965d 100644 --- a/src/test/test-path-lookup.c +++ b/src/test/test-path-lookup.c @@ -11,7 +11,7 @@ #include "tests.h" #include "tmpfile-util.h" -static void test_paths_one(LookupScope scope) { +static void test_paths_one(RuntimeScope scope) { _cleanup_(rm_rf_physical_and_freep) char *tmp = NULL; _cleanup_(lookup_paths_free) LookupPaths lp_without_env = {}; _cleanup_(lookup_paths_free) LookupPaths lp_with_env = {}; @@ -34,9 +34,9 @@ static void test_paths_one(LookupScope scope) { } TEST(paths) { - test_paths_one(LOOKUP_SCOPE_SYSTEM); - test_paths_one(LOOKUP_SCOPE_USER); - test_paths_one(LOOKUP_SCOPE_GLOBAL); + test_paths_one(RUNTIME_SCOPE_SYSTEM); + test_paths_one(RUNTIME_SCOPE_USER); + test_paths_one(RUNTIME_SCOPE_GLOBAL); } TEST(user_and_global_paths) { @@ -48,8 +48,8 @@ TEST(user_and_global_paths) { assert_se(unsetenv("XDG_DATA_DIRS") == 0); assert_se(unsetenv("XDG_CONFIG_DIRS") == 0); - assert_se(lookup_paths_init(&lp_global, LOOKUP_SCOPE_GLOBAL, 0, NULL) == 0); - assert_se(lookup_paths_init(&lp_user, LOOKUP_SCOPE_USER, 0, NULL) == 0); + assert_se(lookup_paths_init(&lp_global, RUNTIME_SCOPE_GLOBAL, 0, NULL) == 0); + assert_se(lookup_paths_init(&lp_user, RUNTIME_SCOPE_USER, 0, NULL) == 0); g = lp_global.search_path; u = lp_user.search_path; @@ -70,7 +70,7 @@ TEST(user_and_global_paths) { log_info("+ %s", *p); } -static void test_generator_binary_paths_one(LookupScope scope) { +static void test_generator_binary_paths_one(RuntimeScope scope) { _cleanup_(rm_rf_physical_and_freep) char *tmp = NULL; _cleanup_strv_free_ char **gp_without_env = NULL; _cleanup_strv_free_ char **env_gp_without_env = NULL; @@ -85,13 +85,13 @@ static void test_generator_binary_paths_one(LookupScope scope) { assert_se(unsetenv("SYSTEMD_ENVIRONMENT_GENERATOR_PATH") == 0); gp_without_env = generator_binary_paths(scope); - env_gp_without_env = env_generator_binary_paths(scope == LOOKUP_SCOPE_SYSTEM ? true : false); + env_gp_without_env = env_generator_binary_paths(scope); - log_info("Generators dirs (%s):", scope == LOOKUP_SCOPE_SYSTEM ? "system" : "user"); + log_info("Generators dirs (%s):", runtime_scope_to_string(scope)); STRV_FOREACH(dir, gp_without_env) log_info(" %s", *dir); - log_info("Environment generators dirs (%s):", scope == LOOKUP_SCOPE_SYSTEM ? "system" : "user"); + log_info("Environment generators dirs (%s):", runtime_scope_to_string(scope)); STRV_FOREACH(dir, env_gp_without_env) log_info(" %s", *dir); @@ -104,13 +104,13 @@ static void test_generator_binary_paths_one(LookupScope scope) { assert_se(setenv("SYSTEMD_ENVIRONMENT_GENERATOR_PATH", systemd_env_generator_path, 1) == 0); gp_with_env = generator_binary_paths(scope); - env_gp_with_env = env_generator_binary_paths(scope == LOOKUP_SCOPE_SYSTEM ? true : false); + env_gp_with_env = env_generator_binary_paths(scope); - log_info("Generators dirs (%s):", scope == LOOKUP_SCOPE_SYSTEM ? "system" : "user"); + log_info("Generators dirs (%s):", runtime_scope_to_string(scope)); STRV_FOREACH(dir, gp_with_env) log_info(" %s", *dir); - log_info("Environment generators dirs (%s):", scope == LOOKUP_SCOPE_SYSTEM ? "system" : "user"); + log_info("Environment generators dirs (%s):", runtime_scope_to_string(scope)); STRV_FOREACH(dir, env_gp_with_env) log_info(" %s", *dir); @@ -119,8 +119,8 @@ static void test_generator_binary_paths_one(LookupScope scope) { } TEST(generator_binary_paths) { - test_generator_binary_paths_one(LOOKUP_SCOPE_SYSTEM); - test_generator_binary_paths_one(LOOKUP_SCOPE_USER); + test_generator_binary_paths_one(RUNTIME_SCOPE_SYSTEM); + test_generator_binary_paths_one(RUNTIME_SCOPE_USER); } DEFINE_TEST_MAIN(LOG_DEBUG); diff --git a/src/test/test-path.c b/src/test/test-path.c index f325b4e51a..92b6b65114 100644 --- a/src/test/test-path.c +++ b/src/test/test-path.c @@ -32,7 +32,7 @@ static int setup_test(Manager **m) { if (r == -ENOMEDIUM) return log_tests_skipped("cgroupfs not available"); - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &tmp); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &tmp); if (manager_errno_skip_test(r)) return log_tests_skipped_errno(r, "manager_new"); assert_se(r >= 0); diff --git a/src/test/test-sched-prio.c b/src/test/test-sched-prio.c index 721c4b61a1..3c3b8dcf4a 100644 --- a/src/test/test-sched-prio.c +++ b/src/test/test-sched-prio.c @@ -30,7 +30,7 @@ int main(int argc, char *argv[]) { assert_se(set_unit_path(unit_dir) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m); if (manager_errno_skip_test(r)) return log_tests_skipped_errno(r, "manager_new"); assert_se(r >= 0); diff --git a/src/test/test-socket-bind.c b/src/test/test-socket-bind.c index d7d9110343..9372f208ae 100644 --- a/src/test/test-socket-bind.c +++ b/src/test/test-socket-bind.c @@ -132,7 +132,7 @@ int main(int argc, char *argv[]) { assert_se(set_unit_path(unit_dir) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); - assert_se(manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); + assert_se(manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); assert_se(manager_startup(m, NULL, NULL, NULL) >= 0); assert_se(test_socket_bind(m, "socket_bind_test.service", netcat_path, "2000", STRV_MAKE("2000"), STRV_MAKE("any")) >= 0); diff --git a/src/test/test-specifier.c b/src/test/test-specifier.c index 4a8ff4bd10..62986e8dc2 100644 --- a/src/test/test-specifier.c +++ b/src/test/test-specifier.c @@ -47,7 +47,7 @@ TEST(specifier_escape_strv) { static const Specifier specifier_table[] = { COMMON_SYSTEM_SPECIFIERS, - COMMON_CREDS_SPECIFIERS(LOOKUP_SCOPE_USER), + COMMON_CREDS_SPECIFIERS(RUNTIME_SCOPE_USER), { 'h', specifier_user_home, NULL }, COMMON_TMP_SPECIFIERS, diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c index 27a73d61a0..9f8787b492 100644 --- a/src/test/test-unit-file.c +++ b/src/test/test-unit-file.c @@ -36,7 +36,7 @@ TEST(unit_file_build_name_map) { ids = strv_skip(saved_argv, 1); - assert_se(lookup_paths_init(&lp, LOOKUP_SCOPE_SYSTEM, 0, NULL) >= 0); + assert_se(lookup_paths_init(&lp, RUNTIME_SCOPE_SYSTEM, 0, NULL) >= 0); assert_se(unit_file_build_name_map(&lp, &mtime, &unit_ids, &unit_names, NULL) == 1); diff --git a/src/test/test-unit-name.c b/src/test/test-unit-name.c index 3904126a87..ed3f2dfc78 100644 --- a/src/test/test-unit-name.c +++ b/src/test/test-unit-name.c @@ -284,7 +284,7 @@ TEST_RET(unit_printf, .sd_booted = true) { assert_se(specifier_var_tmp_dir('V', NULL, NULL, NULL, &var_tmp_dir) >= 0); assert_se(var_tmp_dir); - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); if (manager_errno_skip_test(r)) return log_tests_skipped_errno(r, "manager_new"); assert_se(r == 0); diff --git a/src/test/test-unit-serialize.c b/src/test/test-unit-serialize.c index f84435f480..7a1e8a087a 100644 --- a/src/test/test-unit-serialize.c +++ b/src/test/test-unit-serialize.c @@ -31,7 +31,7 @@ TEST(deserialize_exec_command) { _cleanup_(manager_freep) Manager *m = NULL; int r; - r = manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); + r = manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_MINIMAL, &m); if (manager_errno_skip_test(r)) { log_notice_errno(r, "Skipping test: manager_new: %m"); return; diff --git a/src/test/test-watch-pid.c b/src/test/test-watch-pid.c index 8c355c1d5f..01bf4c1cbe 100644 --- a/src/test/test-watch-pid.c +++ b/src/test/test-watch-pid.c @@ -26,7 +26,7 @@ int main(int argc, char *argv[]) { assert_se(runtime_dir = setup_fake_runtime_dir()); - assert_se(manager_new(LOOKUP_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); + assert_se(manager_new(RUNTIME_SCOPE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0); assert_se(manager_startup(m, NULL, NULL, NULL) >= 0); assert_se(a = unit_new(m, sizeof(Service))); diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 5d1be11509..e1feeac061 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -1016,7 +1016,7 @@ static int run(int argc, char *argv[]) { if (r <= 0) return r; - r = bus_connect_transport(arg_transport, arg_host, false, &bus); + r = bus_connect_transport(arg_transport, arg_host, RUNTIME_SCOPE_SYSTEM, &bus); if (r < 0) return bus_log_connect_error(r, arg_transport); diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 04a860c021..098b12c495 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -196,7 +196,7 @@ typedef enum { } CreationMode; static bool arg_cat_config = false; -static bool arg_user = false; +static RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; static OperationMask arg_operation = 0; static bool arg_boot = false; static PagerFlags arg_pager_flags = 0; @@ -262,7 +262,7 @@ static int specifier_directory(char specifier, const void *data, const char *roo int r; assert_cc(ELEMENTSOF(paths_system) == ELEMENTSOF(paths_user)); - paths = arg_user ? paths_user : paths_system; + paths = arg_runtime_scope == RUNTIME_SCOPE_USER ? paths_user : paths_system; i = PTR_TO_UINT(data); assert(i < ELEMENTSOF(paths_system)); @@ -305,7 +305,7 @@ static int log_unresolvable_specifier(const char *filename, unsigned line) { log_level, filename, line, 0, "Failed to resolve specifier: %s, skipping.", - arg_user ? "Required $XDG_... variable not defined" : "uninitialized /etc/ detected"); + arg_runtime_scope == RUNTIME_SCOPE_USER ? "Required $XDG_... variable not defined" : "uninitialized /etc/ detected"); if (!notified) log_full(log_level, @@ -3191,7 +3191,7 @@ static int parse_line( { 'S', specifier_directory, UINT_TO_PTR(DIRECTORY_STATE) }, { 't', specifier_directory, UINT_TO_PTR(DIRECTORY_RUNTIME) }, - COMMON_CREDS_SPECIFIERS(arg_user ? LOOKUP_SCOPE_USER : LOOKUP_SCOPE_SYSTEM), + COMMON_CREDS_SPECIFIERS(arg_runtime_scope), COMMON_TMP_SPECIFIERS, {} }; @@ -3756,7 +3756,7 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_USER: - arg_user = true; + arg_runtime_scope = RUNTIME_SCOPE_USER; break; case ARG_CREATE: @@ -3842,7 +3842,7 @@ static int parse_argv(int argc, char *argv[]) { return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "When --replace= is given, some configuration items must be specified"); - if (arg_root && arg_user) + if (arg_root && arg_runtime_scope == RUNTIME_SCOPE_USER) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Combination of --user and --root= is not supported."); @@ -4090,14 +4090,22 @@ static int run(int argc, char *argv[]) { /* Descending down file system trees might take a lot of fds */ (void) rlimit_nofile_bump(HIGH_RLIMIT_NOFILE); - if (arg_user) { + switch (arg_runtime_scope) { + + case RUNTIME_SCOPE_USER: r = user_config_paths(&config_dirs); if (r < 0) return log_error_errno(r, "Failed to initialize configuration directory list: %m"); - } else { + break; + + case RUNTIME_SCOPE_SYSTEM: config_dirs = strv_split_nulstr(CONF_PATHS_NULSTR("tmpfiles.d")); if (!config_dirs) return log_oom(); + break; + + default: + assert_not_reached(); } if (DEBUG_LOGGING) {