Mercurial > dovecot > core-2.2
changeset 12018:2735d9afd842
Added default_mail_extra_groups setting. imap/pop3/lmtp services' extra_groups defaults to it.
For now this default is empty to make sure existing installations don't break.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 20 Aug 2010 18:19:50 +0100 |
parents | d6f387fe1275 |
children | a8397390075d |
files | src/imap/imap-settings.c src/lmtp/lmtp-settings.c src/master/master-settings.c src/master/master-settings.h src/pop3/pop3-settings.c |
diffstat | 5 files changed, 15 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/imap/imap-settings.c Fri Aug 20 18:19:04 2010 +0100 +++ b/src/imap/imap-settings.c Fri Aug 20 18:19:50 2010 +0100 @@ -34,7 +34,7 @@ .user = "", .group = "", .privileged_group = "", - .extra_groups = "", + .extra_groups = "$default_mail_extra_groups", .chroot = "", .drop_priv_before_exec = FALSE,
--- a/src/lmtp/lmtp-settings.c Fri Aug 20 18:19:04 2010 +0100 +++ b/src/lmtp/lmtp-settings.c Fri Aug 20 18:19:50 2010 +0100 @@ -33,7 +33,7 @@ .user = "", .group = "", .privileged_group = "", - .extra_groups = "", + .extra_groups = "$default_mail_extra_groups", .chroot = "", .drop_priv_before_exec = FALSE,
--- a/src/master/master-settings.c Fri Aug 20 18:19:04 2010 +0100 +++ b/src/master/master-settings.c Fri Aug 20 18:19:50 2010 +0100 @@ -175,6 +175,7 @@ DEF(SET_ENUM, ssl), DEF(SET_STR, default_internal_user), DEF(SET_STR, default_login_user), + DEF(SET_STR, default_mail_extra_groups), DEF(SET_UINT, default_process_limit), DEF(SET_UINT, default_client_limit), DEF(SET_UINT, default_idle_kill), @@ -202,6 +203,7 @@ .ssl = "yes:no:required", .default_internal_user = "dovecot", .default_login_user = "dovenull", + .default_mail_extra_groups = "", .default_process_limit = 100, .default_client_limit = 1000, .default_idle_kill = 60, @@ -257,6 +259,14 @@ } static void +expand_group(const char **group, const struct master_settings *set) +{ + /* same reason as expand_user() */ + if (strcmp(*group, "$default_mail_extra_groups") == 0) + *group = set->default_mail_extra_groups; +} + +static void fix_file_listener_paths(ARRAY_TYPE(file_listener_settings) *l, pool_t pool, const struct master_settings *master_set, ARRAY_TYPE(const_string) *all_listeners) @@ -409,6 +419,7 @@ } } expand_user(&service->user, &service->user_default, set); + expand_group(&service->extra_groups, set); service_set_login_dump_core(service); } set->protocols_split = p_strsplit_spaces(pool, set->protocols, " ");
--- a/src/master/master-settings.h Fri Aug 20 18:19:04 2010 +0100 +++ b/src/master/master-settings.h Fri Aug 20 18:19:50 2010 +0100 @@ -11,6 +11,7 @@ const char *ssl; const char *default_internal_user; const char *default_login_user; + const char *default_mail_extra_groups; unsigned int default_process_limit; unsigned int default_client_limit; unsigned int default_idle_kill;
--- a/src/pop3/pop3-settings.c Fri Aug 20 18:19:04 2010 +0100 +++ b/src/pop3/pop3-settings.c Fri Aug 20 18:19:50 2010 +0100 @@ -34,7 +34,7 @@ .user = "", .group = "", .privileged_group = "", - .extra_groups = "", + .extra_groups = "$default_mail_extra_groups", .chroot = "", .drop_priv_before_exec = FALSE,