From: Daan De Meyer Date: Fri, 12 May 2023 15:14:46 +0000 (+0200) Subject: conf-parser: Add root argument to config_parse_many() X-Git-Tag: v254-rc1~491^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=947f59ba2bb860c70bb6192fedf7208a73670e87;p=thirdparty%2Fsystemd.git conf-parser: Add root argument to config_parse_many() --- diff --git a/src/core/main.c b/src/core/main.c index 86385d64656..3fbfc5b7414 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -726,6 +726,7 @@ static int parse_config_file(void) { (const char* const*) files, (const char* const*) dirs, "user.conf.d", + /* root = */ NULL, "Manager\0", config_item_table_lookup, items, CONFIG_PARSE_WARN, diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index 038a27c1186..2c3b0f87979 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -787,7 +787,7 @@ int netdev_load_one(Manager *manager, const char *filename) { dropin_dirname = strjoina(basename(filename), ".d"); r = config_parse_many( - STRV_MAKE_CONST(filename), NETWORK_DIRS, dropin_dirname, + STRV_MAKE_CONST(filename), NETWORK_DIRS, dropin_dirname, /* root = */ NULL, NETDEV_COMMON_SECTIONS NETDEV_OTHER_SECTIONS, config_item_perf_lookup, network_netdev_gperf_lookup, CONFIG_PARSE_WARN, @@ -823,7 +823,7 @@ int netdev_load_one(Manager *manager, const char *filename) { NETDEV_VTABLE(netdev)->init(netdev); r = config_parse_many( - STRV_MAKE_CONST(filename), NETWORK_DIRS, dropin_dirname, + STRV_MAKE_CONST(filename), NETWORK_DIRS, dropin_dirname, /* root = */ NULL, NETDEV_VTABLE(netdev)->sections, config_item_perf_lookup, network_netdev_gperf_lookup, CONFIG_PARSE_WARN, diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 7c5d691afab..9a0511eeef7 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -493,7 +493,7 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi }; r = config_parse_many( - STRV_MAKE_CONST(filename), NETWORK_DIRS, dropin_dirname, + STRV_MAKE_CONST(filename), NETWORK_DIRS, dropin_dirname, /* root = */ NULL, "Match\0" "Link\0" "SR-IOV\0" diff --git a/src/partition/repart.c b/src/partition/repart.c index 357cbcafc9a..30d341f795a 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -1638,6 +1638,7 @@ static int partition_read_definition(Partition *p, const char *path, const char STRV_MAKE_CONST(path), conf_file_dirs, dropin_dirname, + /* root = */ NULL, "Partition\0", config_item_table_lookup, table, CONFIG_PARSE_WARN, diff --git a/src/resolve/resolved-dnssd.c b/src/resolve/resolved-dnssd.c index f5a8a80ebc8..994771eca73 100644 --- a/src/resolve/resolved-dnssd.c +++ b/src/resolve/resolved-dnssd.c @@ -88,7 +88,7 @@ static int dnssd_service_load(Manager *manager, const char *filename) { dropin_dirname = strjoina(service->name, ".dnssd.d"); r = config_parse_many( - STRV_MAKE_CONST(filename), DNSSD_SERVICE_DIRS, dropin_dirname, + STRV_MAKE_CONST(filename), DNSSD_SERVICE_DIRS, dropin_dirname, /* root = */ NULL, "Service\0", config_item_perf_lookup, resolved_dnssd_gperf_lookup, CONFIG_PARSE_WARN, diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 138a3a8cc9e..21ba7f69149 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -584,6 +584,7 @@ int config_parse_config_file( static int config_get_dropin_files( const char* const* conf_file_dirs, const char *dropin_dirname, + const char *root, char ***ret) { _cleanup_strv_free_ char **dropin_dirs = NULL; @@ -599,7 +600,7 @@ static int config_get_dropin_files( if (r < 0) return r; - return conf_files_list_strv(ret, ".conf", NULL, 0, (const char* const*) dropin_dirs); + return conf_files_list_strv(ret, ".conf", root, 0, (const char* const*) dropin_dirs); } /* Parse each config file in the directories specified as strv. */ @@ -607,6 +608,7 @@ int config_parse_many( const char* const* conf_files, const char* const* conf_file_dirs, const char *dropin_dirname, + const char *root, const char *sections, ConfigItemLookup lookup, const void *table, @@ -623,7 +625,7 @@ int config_parse_many( assert(sections); assert(table); - r = config_get_dropin_files(conf_file_dirs, dropin_dirname, &files); + r = config_get_dropin_files(conf_file_dirs, dropin_dirname, root, &files); if (r < 0) return r; @@ -659,7 +661,7 @@ static int dropins_get_stats_by_path( if (!strextend(&dropin_dirname, ".d")) return -ENOMEM; - r = config_get_dropin_files(conf_file_dirs, dropin_dirname, &files); + r = config_get_dropin_files(conf_file_dirs, dropin_dirname, /* root = */ NULL, &files); if (r < 0) return r; diff --git a/src/shared/conf-parser.h b/src/shared/conf-parser.h index e5aeeac6878..902717965cd 100644 --- a/src/shared/conf-parser.h +++ b/src/shared/conf-parser.h @@ -105,6 +105,7 @@ int config_parse_many( const char* const* conf_files, /* possibly empty */ const char* const* conf_file_dirs, const char *dropin_dirname, + const char *root, const char *sections, /* nulstr */ ConfigItemLookup lookup, const void *table, diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c index 0bea6f1c168..4c83eede7aa 100644 --- a/src/udev/net/link-config.c +++ b/src/udev/net/link-config.c @@ -260,6 +260,7 @@ int link_load_one(LinkConfigContext *ctx, const char *filename) { STRV_MAKE_CONST(filename), NETWORK_DIRS, dropin_dirname, + /* root = */ NULL, "Match\0" "Link\0" "SR-IOV\0",