From: Timo Sirainen Date: Sat, 26 Feb 2022 21:58:26 +0000 (+0100) Subject: lib-settings: Add settings_parser_get_root_set_dup() X-Git-Tag: 2.4.0~3363 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c414d982531aad0d78238b76ada742abefc68b4e;p=thirdparty%2Fdovecot%2Fcore.git lib-settings: Add settings_parser_get_root_set_dup() --- diff --git a/src/lib-settings/settings-parser.c b/src/lib-settings/settings-parser.c index d2726b1086..ef243d7586 100644 --- a/src/lib-settings/settings-parser.c +++ b/src/lib-settings/settings-parser.c @@ -279,6 +279,13 @@ void *settings_parser_get_root_set(const struct setting_parser_context *ctx, i_panic("Couldn't find settings for root %s", root->module_name); } +void *settings_parser_get_root_set_dup(const struct setting_parser_context *ctx, + const struct setting_parser_info *root, + pool_t pool) +{ + return settings_dup(root, settings_parser_get_root_set(ctx, root), pool); +} + void *settings_parser_get_changes(struct setting_parser_context *ctx) { i_assert(ctx->root_count == 1); diff --git a/src/lib-settings/settings-parser.h b/src/lib-settings/settings-parser.h index 4a3c002363..5823e09402 100644 --- a/src/lib-settings/settings-parser.h +++ b/src/lib-settings/settings-parser.h @@ -155,6 +155,10 @@ void **settings_parser_get_list(const struct setting_parser_context *ctx); the function panics. */ void *settings_parser_get_root_set(const struct setting_parser_context *ctx, const struct setting_parser_info *root); +/* Combine settings_parser_get_root_set() and settings_dup(). */ +void *settings_parser_get_root_set_dup(const struct setting_parser_context *ctx, + const struct setting_parser_info *root, + pool_t pool); /* Like settings_parser_get(), but return change struct. */ void *settings_parser_get_changes(struct setting_parser_context *ctx); /* Returns the setting parser's roots (same as given to init()). */