dovecot-2.0: Added default_internal_user and default_login_user ...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Feb 13 08:09:11 EET 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/bf84cb98bd04
changeset: 10705:bf84cb98bd04
user: Timo Sirainen <tss at iki.fi>
date: Sat Feb 13 08:08:57 2010 +0200
description:
Added default_internal_user and default_login_user settings, which services use as default users.
diffstat:
doc/example-config/conf.d/master.conf | 3 +++
src/anvil/anvil-settings.c | 2 +-
src/dict/dict-settings.c | 2 +-
src/dns/dns-client-settings.c | 2 +-
src/imap-login/imap-login-settings.c | 2 +-
src/master/master-settings.c | 4 ++++
src/master/master-settings.h | 2 ++
src/master/service.c | 13 +++++++++++--
src/pop3-login/pop3-login-settings.c | 2 +-
src/util/tcpwrap-settings.c | 2 +-
10 files changed, 26 insertions(+), 8 deletions(-)
diffs (149 lines):
diff -r c26002b81f57 -r bf84cb98bd04 doc/example-config/conf.d/master.conf
--- a/doc/example-config/conf.d/master.conf Sat Feb 13 08:07:31 2010 +0200
+++ b/doc/example-config/conf.d/master.conf Sat Feb 13 08:08:57 2010 +0200
@@ -2,6 +2,9 @@
#default_client_limit = 1000
#default_vsz_limit = 256M
+#default_login_user = dovecot
+#default_internal_user = dovecot
+
service imap-login {
inet_listener imap {
#port = 143
diff -r c26002b81f57 -r bf84cb98bd04 src/anvil/anvil-settings.c
--- a/src/anvil/anvil-settings.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/anvil/anvil-settings.c Sat Feb 13 08:08:57 2010 +0200
@@ -26,7 +26,7 @@
.protocol = "",
.type = "anvil",
.executable = "anvil",
- .user = "dovecot",
+ .user = "$default_internal_user",
.group = "",
.privileged_group = "",
.extra_groups = "",
diff -r c26002b81f57 -r bf84cb98bd04 src/dict/dict-settings.c
--- a/src/dict/dict-settings.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/dict/dict-settings.c Sat Feb 13 08:08:57 2010 +0200
@@ -23,7 +23,7 @@
.protocol = "",
.type = "",
.executable = "dict",
- .user = "dovecot",
+ .user = "$default_internal_user",
.group = "",
.privileged_group = "",
.extra_groups = "",
diff -r c26002b81f57 -r bf84cb98bd04 src/dns/dns-client-settings.c
--- a/src/dns/dns-client-settings.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/dns/dns-client-settings.c Sat Feb 13 08:08:57 2010 +0200
@@ -26,7 +26,7 @@
.protocol = "",
.type = "",
.executable = "dns-client",
- .user = "dovecot",
+ .user = "$default_internal_user",
.group = "",
.privileged_group = "",
.extra_groups = "",
diff -r c26002b81f57 -r bf84cb98bd04 src/imap-login/imap-login-settings.c
--- a/src/imap-login/imap-login-settings.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/imap-login/imap-login-settings.c Sat Feb 13 08:08:57 2010 +0200
@@ -28,7 +28,7 @@
.protocol = "imap",
.type = "login",
.executable = "imap-login",
- .user = "dovecot",
+ .user = "$default_login_user",
.group = "",
.privileged_group = "",
.extra_groups = "",
diff -r c26002b81f57 -r bf84cb98bd04 src/master/master-settings.c
--- a/src/master/master-settings.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/master/master-settings.c Sat Feb 13 08:08:57 2010 +0200
@@ -171,6 +171,8 @@
DEF(SET_STR, protocols),
DEF(SET_STR, listen),
DEF(SET_ENUM, ssl),
+ DEF(SET_STR, default_internal_user),
+ DEF(SET_STR, default_login_user),
DEF(SET_UINT, default_process_limit),
DEF(SET_UINT, default_client_limit),
DEF(SET_SIZE, default_vsz_limit),
@@ -195,6 +197,8 @@
.protocols = "imap pop3 lmtp",
.listen = "*, ::",
.ssl = "yes:no:required",
+ .default_internal_user = "dovecot",
+ .default_login_user = "dovecot",
.default_process_limit = 100,
.default_client_limit = 1000,
.default_vsz_limit = 256*1024*1024,
diff -r c26002b81f57 -r bf84cb98bd04 src/master/master-settings.h
--- a/src/master/master-settings.h Sat Feb 13 08:07:31 2010 +0200
+++ b/src/master/master-settings.h Sat Feb 13 08:08:57 2010 +0200
@@ -9,6 +9,8 @@
const char *protocols;
const char *listen;
const char *ssl;
+ const char *default_internal_user;
+ const char *default_login_user;
unsigned int default_process_limit;
unsigned int default_client_limit;
uoff_t default_vsz_limit;
diff -r c26002b81f57 -r bf84cb98bd04 src/master/service.c
--- a/src/master/service.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/master/service.c Sat Feb 13 08:08:57 2010 +0200
@@ -168,7 +168,7 @@
struct inet_listener_settings *const *inet_listeners;
struct service *service;
struct service_listener *l;
- const char *const *tmp;
+ const char *user, *const *tmp;
string_t *str;
unsigned int i, unix_count, fifo_count, inet_count;
@@ -202,8 +202,17 @@
return NULL;
}
+ /* $variable expansion is typically done by doveconf, but these
+ variables can come from built-in settings, so we need to expand
+ them here */
+ user = set->user;
+ if (strcmp(user, "$default_internal_user") == 0)
+ user = set->master_set->default_internal_user;
+ else if (strcmp(user, "$default_login_user") == 0)
+ user = set->master_set->default_login_user;
+
/* default gid to user's primary group */
- if (get_uidgid(set->user, &service->uid, &service->gid, error_r) < 0)
+ if (get_uidgid(user, &service->uid, &service->gid, error_r) < 0)
return NULL;
if (*set->group != '\0') {
if (get_gid(set->group, &service->gid, error_r) < 0)
diff -r c26002b81f57 -r bf84cb98bd04 src/pop3-login/pop3-login-settings.c
--- a/src/pop3-login/pop3-login-settings.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/pop3-login/pop3-login-settings.c Sat Feb 13 08:08:57 2010 +0200
@@ -28,7 +28,7 @@
.protocol = "pop3",
.type = "login",
.executable = "pop3-login",
- .user = "dovecot",
+ .user = "$default_login_user",
.group = "",
.privileged_group = "",
.extra_groups = "",
diff -r c26002b81f57 -r bf84cb98bd04 src/util/tcpwrap-settings.c
--- a/src/util/tcpwrap-settings.c Sat Feb 13 08:07:31 2010 +0200
+++ b/src/util/tcpwrap-settings.c Sat Feb 13 08:08:57 2010 +0200
@@ -12,7 +12,7 @@
.protocol = "",
.type = "",
.executable = "tcpwrap",
- .user = "dovecot",
+ .user = "$default_internal_user",
.group = "",
.privileged_group = "",
.extra_groups = "",
More information about the dovecot-cvs
mailing list