From: Timo Sirainen Date: Sun, 27 Feb 2022 19:21:30 +0000 (+0100) Subject: lib-storage: Add mail_user_var_expand() X-Git-Tag: 2.4.0~3388 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33eab69ffe39c0d1a2f8d0fd188d05ca14a80d27;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Add mail_user_var_expand() --- diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index bcd397bfe7..b7eae3e3c8 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -146,6 +146,15 @@ mail_user_expand_plugins_envs(struct mail_user *user) } } +int mail_user_var_expand(struct mail_user *user, + const struct setting_parser_info *info, void *set, + const char **error_r) +{ + return settings_var_expand_with_funcs(info, set, + user->pool, mail_user_var_expand_table(user), + mail_user_var_expand_func_table, user, error_r); +} + int mail_user_init(struct mail_user *user, const char **error_r) { const struct mail_storage_settings *mail_set; diff --git a/src/lib-storage/mail-user.h b/src/lib-storage/mail-user.h index d695781aa1..cc9efbeff9 100644 --- a/src/lib-storage/mail-user.h +++ b/src/lib-storage/mail-user.h @@ -156,6 +156,11 @@ void mail_user_set_vars(struct mail_user *user, const char *service, /* Return %variable expansion table for the user. */ const struct var_expand_table * mail_user_var_expand_table(struct mail_user *user); +/* Expand %variables for the user. The settings values may be allocated from + user->pool. Returns the same as settings_var_expand_with_funcs(). */ +int mail_user_var_expand(struct mail_user *user, + const struct setting_parser_info *info, void *set, + const char **error_r); /* Specify the user's home directory. This should be called also when it's known that the user doesn't have a home directory to avoid the internal