From 4b047310f68654a5e66e10233b8fd0d40e6288bf Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 12 May 2023 17:08:28 +0200 Subject: repart: Read arguments directly instead of passing them in --- src/partition/repart.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/partition/repart.c b/src/partition/repart.c index 8766225d6f..91db8ddcdb 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -1795,11 +1795,7 @@ static int find_verity_sibling(Context *context, Partition *p, VerityMode mode, return 0; } -static int context_read_definitions( - Context *context, - char **directories, - const char *root) { - +static int context_read_definitions(Context *context) { _cleanup_strv_free_ char **files = NULL; Partition *last = NULL; int r; @@ -1807,9 +1803,9 @@ static int context_read_definitions( assert(context); - dirs = (const char* const*) (directories ?: CONF_PATHS_STRV("repart.d")); + dirs = (const char* const*) (arg_definitions ?: CONF_PATHS_STRV("repart.d")); - r = conf_files_list_strv(&files, ".conf", directories ? NULL : root, CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED, dirs); + r = conf_files_list_strv(&files, ".conf", arg_definitions ? NULL : arg_root, CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED, dirs); if (r < 0) return log_error_errno(r, "Failed to enumerate *.conf files: %m"); @@ -6738,7 +6734,7 @@ static int run(int argc, char *argv[]) { strv_uniq(arg_definitions); - r = context_read_definitions(context, arg_definitions, arg_root); + r = context_read_definitions(context); if (r < 0) return r; -- cgit v1.2.1 From 9b05a3715ba406974501629d00ea25c8eca72377 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 12 May 2023 17:16:45 +0200 Subject: repart: Make sure r is declared last --- src/partition/repart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/partition/repart.c b/src/partition/repart.c index 91db8ddcdb..357cbcafc9 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -1798,8 +1798,8 @@ static int find_verity_sibling(Context *context, Partition *p, VerityMode mode, static int context_read_definitions(Context *context) { _cleanup_strv_free_ char **files = NULL; Partition *last = NULL; - int r; const char *const *dirs; + int r; assert(context); -- cgit v1.2.1 From 947f59ba2bb860c70bb6192fedf7208a73670e87 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 12 May 2023 17:14:46 +0200 Subject: conf-parser: Add root argument to config_parse_many() --- src/core/main.c | 1 + src/network/netdev/netdev.c | 4 ++-- src/network/networkd-network.c | 2 +- src/partition/repart.c | 1 + src/resolve/resolved-dnssd.c | 2 +- src/shared/conf-parser.c | 8 +++++--- src/shared/conf-parser.h | 1 + src/udev/net/link-config.c | 1 + 8 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/core/main.c b/src/core/main.c index 86385d6465..3fbfc5b741 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 038a27c118..2c3b0f8797 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 7c5d691afa..9a0511eeef 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 357cbcafc9..30d341f795 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 f5a8a80ebc..994771eca7 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 138a3a8cc9..21ba7f6914 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 e5aeeac687..902717965c 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 0bea6f1c16..4c83eede7a 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", -- cgit v1.2.1 From 34f2fd5096cdb26ef57998740b1b876332d968fc Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 12 May 2023 17:16:21 +0200 Subject: repart: Make sure we look up dropin files in the root directory --- src/partition/repart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/partition/repart.c b/src/partition/repart.c index 30d341f795..1f3e78a84e 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -1638,7 +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, + arg_definitions ? NULL : arg_root, "Partition\0", config_item_table_lookup, table, CONFIG_PARSE_WARN, -- cgit v1.2.1