Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8275:0a8320a714b5 HEAD
deliver: Expand variables in namespace prefix.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 16 Oct 2008 12:47:05 +0300 |
parents | 242e6d47f790 |
children | dcc80beecb40 |
files | src/deliver/deliver.c |
diffstat | 1 files changed, 17 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/deliver/deliver.c Wed Oct 15 16:45:04 2008 +0300 +++ b/src/deliver/deliver.c Thu Oct 16 12:47:05 2008 +0300 @@ -723,7 +723,7 @@ static void expand_envs(const char *user) { const struct var_expand_table *table; - const char *mail_env, *const *envs, *home, *env_name; + const char *value, *const *envs, *home, *env_name; unsigned int i, count; string_t *str; @@ -748,19 +748,27 @@ home = getenv("HOME"); table = get_var_expand_table(user, home); - mail_env = getenv("MAIL_LOCATION"); - if (mail_env != NULL) - mail_env = expand_mail_env(mail_env, table); - env_put(t_strconcat("MAIL=", mail_env, NULL)); + value = getenv("MAIL_LOCATION"); + if (value != NULL) + value = expand_mail_env(value, table); + env_put(t_strconcat("MAIL=", value, NULL)); for (i = 1;; i++) { env_name = t_strdup_printf("NAMESPACE_%u", i); - mail_env = getenv(env_name); - if (mail_env == NULL) + value = getenv(env_name); + if (value == NULL) break; - mail_env = expand_mail_env(mail_env, table); - env_put(t_strconcat(env_name, "=", mail_env, NULL)); + value = expand_mail_env(value, table); + env_put(t_strconcat(env_name, "=", value, NULL)); + + env_name = t_strdup_printf("NAMESPACE_%u_PREFIX", i); + value = getenv(env_name); + if (value != NULL) { + str_truncate(str, 0); + var_expand(str, value, table); + env_put(t_strconcat(env_name, "=", str_c(str), NULL)); + } } }