diff --git a/src/basic/conf-files.c b/src/basic/conf-files.c index 2461235fe8..644bd170ca 100644 --- a/src/basic/conf-files.c +++ b/src/basic/conf-files.c @@ -26,7 +26,7 @@ static int files_add( Hashmap **files, Set **masked, const char *suffix, - unsigned flags) { + ConfFilesFlags flags) { int r; @@ -141,7 +141,7 @@ int conf_files_list_strv( char ***ret, const char *suffix, const char *root, - unsigned flags, + ConfFilesFlags flags, const char * const *dirs) { _cleanup_hashmap_free_ Hashmap *fh = NULL; @@ -175,7 +175,7 @@ int conf_files_list_strv_at( char ***ret, const char *suffix, int rfd, - unsigned flags, + ConfFilesFlags flags, const char * const *dirs) { _cleanup_hashmap_free_ Hashmap *fh = NULL; @@ -274,15 +274,15 @@ int conf_files_insert(char ***strv, const char *root, char **dirs, const char *p return r; } -int conf_files_list(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dir) { +int conf_files_list(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dir) { return conf_files_list_strv(ret, suffix, root, flags, STRV_MAKE_CONST(dir)); } -int conf_files_list_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dir) { +int conf_files_list_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dir) { return conf_files_list_strv_at(ret, suffix, rfd, flags, STRV_MAKE_CONST(dir)); } -int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dirs) { +int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dirs) { _cleanup_strv_free_ char **d = NULL; assert(ret); @@ -294,7 +294,7 @@ int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, un return conf_files_list_strv(ret, suffix, root, flags, (const char**) d); } -int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dirs) { +int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dirs) { _cleanup_strv_free_ char **d = NULL; assert(ret); diff --git a/src/basic/conf-files.h b/src/basic/conf-files.h index fb479cabf9..2bee1448e4 100644 --- a/src/basic/conf-files.h +++ b/src/basic/conf-files.h @@ -3,20 +3,20 @@ #include "forward.h" -enum { +typedef enum ConfFilesFlags { CONF_FILES_EXECUTABLE = 1 << 0, CONF_FILES_REGULAR = 1 << 1, CONF_FILES_DIRECTORY = 1 << 2, CONF_FILES_BASENAME = 1 << 3, CONF_FILES_FILTER_MASKED = 1 << 4, -}; +} ConfFilesFlags; -int conf_files_list(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dir); -int conf_files_list_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dir); -int conf_files_list_strv(char ***ret, const char *suffix, const char *root, unsigned flags, const char* const* dirs); -int conf_files_list_strv_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char * const *dirs); -int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dirs); -int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dirs); +int conf_files_list(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dir); +int conf_files_list_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dir); +int conf_files_list_strv(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char* const* dirs); +int conf_files_list_strv_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char * const *dirs); +int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dirs); +int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dirs); int conf_files_insert(char ***strv, const char *root, char **dirs, const char *path); int conf_files_list_with_replacement( const char *root, diff --git a/src/core/manager.c b/src/core/manager.c index 818321702e..d794a2518f 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -3909,9 +3909,14 @@ static int manager_run_environment_generators(Manager *m) { }; WITH_UMASK(0022) - r = execute_directories((const char* const*) paths, DEFAULT_TIMEOUT_USEC, gather_environment, - args, NULL, m->transient_environment, - EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS | EXEC_DIR_SET_SYSTEMD_EXEC_PID); + r = execute_directories( + (const char* const*) paths, + DEFAULT_TIMEOUT_USEC, + gather_environment, + args, + /* argv[]= */ NULL, + m->transient_environment, + EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS | EXEC_DIR_SET_SYSTEMD_EXEC_PID); return r; } diff --git a/src/shared/exec-util.c b/src/shared/exec-util.c index 771bbb762e..a64bcfe125 100644 --- a/src/shared/exec-util.c +++ b/src/shared/exec-util.c @@ -307,7 +307,12 @@ int execute_directories( assert(!strv_isempty((char* const*) directories)); - r = conf_files_list_strv(&paths, NULL, NULL, CONF_FILES_EXECUTABLE|CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED, directories); + r = conf_files_list_strv( + &paths, + /* suffix= */ NULL, + /* root= */ NULL, + CONF_FILES_EXECUTABLE|CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED, + directories); if (r < 0) return log_error_errno(r, "Failed to enumerate executables: %m"); diff --git a/src/shared/generator.c b/src/shared/generator.c index 3a9d10ad69..ea665a6c33 100644 --- a/src/shared/generator.c +++ b/src/shared/generator.c @@ -1054,10 +1054,10 @@ int generator_write_veritysetup_service_section( void log_setup_generator(void) { if (invoked_by_systemd()) { /* Disable talking to syslog/journal (i.e. the two IPC-based loggers) if we run in system context. */ - if (cg_pid_get_owner_uid(0, NULL) == -ENXIO /* not running in a per-user slice */) + if (streq_ptr(getenv("SYSTEMD_SCOPE"), "system")) log_set_prohibit_ipc(true); - /* This effectively means: journal for per-user generators, kmsg otherwise */ + /* This effectively means: journal for per-user service manager generators, kmsg for per-system service manager generators */ log_set_target(LOG_TARGET_JOURNAL_OR_KMSG); } else log_set_target(LOG_TARGET_AUTO);