]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Added default_mail_extra_groups setting. imap/pop3/lmtp services' extra_groups defaul...
authorTimo Sirainen <tss@iki.fi>
Fri, 20 Aug 2010 17:19:50 +0000 (18:19 +0100)
committerTimo Sirainen <tss@iki.fi>
Fri, 20 Aug 2010 17:19:50 +0000 (18:19 +0100)
For now this default is empty to make sure existing installations don't break.

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

index 103f9e9abcac97c07d326ecf87e06da1d939c31d..e9d072c24641d731490638a1f9a43ed1263241c6 100644 (file)
@@ -34,7 +34,7 @@ struct service_settings imap_service_settings = {
        .user = "",
        .group = "",
        .privileged_group = "",
-       .extra_groups = "",
+       .extra_groups = "$default_mail_extra_groups",
        .chroot = "",
 
        .drop_priv_before_exec = FALSE,
index e9175933231d67c28896597f0f307a9ef3285ecb..ffc127726d1066c2966517c2a1c637e9d9e506db 100644 (file)
@@ -33,7 +33,7 @@ struct service_settings lmtp_login_service_settings = {
        .user = "",
        .group = "",
        .privileged_group = "",
-       .extra_groups = "",
+       .extra_groups = "$default_mail_extra_groups",
        .chroot = "",
 
        .drop_priv_before_exec = FALSE,
index be642327c8459dbc78954d0139943acdd690ad2c..f183844ce73652069be1cf64c21953747f978089 100644 (file)
@@ -175,6 +175,7 @@ static const struct setting_define master_setting_defines[] = {
        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 @@ static const struct master_settings master_default_settings = {
        .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,
@@ -256,6 +258,14 @@ expand_user(const char **user, enum service_user_default *default_r,
        }
 }
 
+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,
@@ -409,6 +419,7 @@ master_settings_verify(void *_set, pool_t pool, const char **error_r)
                        }
                }
                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, " ");
index 04f9d03a7cc9e7c5b323b43439497842124135e8..35a74cf496c310afaa22ac4acdbc0810e19c1c27 100644 (file)
@@ -11,6 +11,7 @@ struct master_settings {
        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;
index 0fa239f6ca5fc40e2d7e4b7ac2e31af0b68b411e..8c0d906f21fcf54a0cd6e0955d65191fbc3ebc7b 100644 (file)
@@ -34,7 +34,7 @@ struct service_settings pop3_service_settings = {
        .user = "",
        .group = "",
        .privileged_group = "",
-       .extra_groups = "",
+       .extra_groups = "$default_mail_extra_groups",
        .chroot = "",
 
        .drop_priv_before_exec = FALSE,