From: Timo Sirainen Date: Mon, 25 Oct 2010 16:31:39 +0000 (+0100) Subject: lib-master: Use env_clean_except() for master_service_env_clean() X-Git-Tag: 2.0.7~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=75e531c014847af490f4bdb1310c87f9b2c8e478;p=thirdparty%2Fdovecot%2Fcore.git lib-master: Use env_clean_except() for master_service_env_clean() --- diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c index cc0376c2f7..5724b7b43c 100644 --- a/src/lib-master/master-service.c +++ b/src/lib-master/master-service.c @@ -402,29 +402,7 @@ void master_service_env_clean(bool preserve_home) #endif NULL }; - ARRAY_TYPE(const_string) envs; - const char *value, *const *envp; - unsigned int i; - - t_array_init(&envs, N_ELEMENTS(preserve_envs)); - i = preserve_home ? 0 : 1; - for (; preserve_envs[i] != NULL; i++) { - const char *key = preserve_envs[i]; - - value = getenv(key); - if (value != NULL) { - value = t_strconcat(key, "=", value, NULL); - array_append(&envs, &value, 1); - } - } - - /* Note that if the original environment was set with env_put(), the - environment strings will be invalid after env_clean(). That's why - we t_strconcat() them above. */ - env_clean(); - - array_foreach(&envs, envp) - env_put(*envp); + env_clean_except(preserve_envs + (preserve_home ? 0 : 1)); } void master_service_set_client_limit(struct master_service *service,