summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorFranck Bui <fbui@suse.com>2023-01-27 11:32:27 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2023-03-14 03:31:21 +0900
commit07e0ffc8234b8212a6509fe6dbc1811be03fc3ae (patch)
treec6e3c15a443bad9f9f6c9c2f220e3fa352cc0f35 /src/core
parent4fed028ae48e0b70325d78dd7e44e7f776a7aa0a (diff)
downloadsystemd-07e0ffc8234b8212a6509fe6dbc1811be03fc3ae.tar.gz
conf: replace config_parse_many_nulstr() with config_parse_config_file()
All daemons use a similar scheme to read their main config files and theirs drop-ins. The main config files are always stored in /etc/systemd directory and it's easy enough to construct the name of the drop-in directories based on the name of the main config file. Hence the new helper does that internally, which allows to reduce and simplify the args passed previously to config_parse_many_nulstr(). Besides the overall code simplification it results: 16 files changed, 87 insertions(+), 159 deletions(-) it allows to identify clearly the locations in the code where configuration files are parsed.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/main.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/core/main.c b/src/core/main.c
index 3f63150f31..5f8f251e9a 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -704,33 +704,32 @@ static int parse_config_file(void) {
{}
};
- _cleanup_strv_free_ char **files = NULL, **dirs = NULL;
- const char *suffix;
- int r;
-
if (arg_runtime_scope == RUNTIME_SCOPE_SYSTEM)
- suffix = "system.conf.d";
+ (void) config_parse_config_file("system.conf",
+ "Manager\0",
+ config_item_table_lookup, items,
+ CONFIG_PARSE_WARN,
+ NULL);
else {
+ _cleanup_strv_free_ char **files = NULL, **dirs = NULL;
+ int r;
+
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");
- suffix = "user.conf.d";
+ (void) config_parse_many(
+ (const char* const*) files,
+ (const char* const*) dirs,
+ "user.conf.d",
+ "Manager\0",
+ config_item_table_lookup, items,
+ CONFIG_PARSE_WARN,
+ NULL, NULL, NULL);
}
- (void) config_parse_many(
- (const char* const*) (files ?: STRV_MAKE(PKGSYSCONFDIR "/system.conf")),
- (const char* const*) (dirs ?: CONF_PATHS_STRV("systemd")),
- suffix,
- "Manager\0",
- config_item_table_lookup, items,
- CONFIG_PARSE_WARN,
- NULL,
- NULL,
- NULL);
-
/* Traditionally "0" was used to turn off the default unit timeouts. Fix this up so that we use
* USEC_INFINITY like everywhere else. */
if (arg_default_timeout_start_usec <= 0)