dovecot-2.1: lib-storage: Added separate %{gid} expansion to mai...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Dec 10 08:41:17 EET 2011
details: http://hg.dovecot.org/dovecot-2.1/rev/499e4916bed5
changeset: 13841:499e4916bed5
user: Timo Sirainen <tss at iki.fi>
date: Sat Dec 10 08:41:01 2011 +0200
description:
lib-storage: Added separate %{gid} expansion to mail_user.
The default %{gid} probably works also, but it's more reliable to do this
explicitly.
diffstat:
src/lib-storage/mail-storage-service.c | 2 +-
src/lib-storage/mail-user.c | 6 ++++--
src/lib-storage/mail-user.h | 5 +++--
3 files changed, 8 insertions(+), 5 deletions(-)
diffs (60 lines):
diff -r 95524ab3469f -r 499e4916bed5 src/lib-storage/mail-storage-service.c
--- a/src/lib-storage/mail-storage-service.c Sat Dec 10 08:35:06 2011 +0200
+++ b/src/lib-storage/mail-storage-service.c Sat Dec 10 08:41:01 2011 +0200
@@ -484,7 +484,7 @@
mail_user = mail_user_alloc(user->input.username, user->user_info,
user->user_set);
mail_user_set_home(mail_user, *home == '\0' ? NULL : home);
- mail_user_set_vars(mail_user, geteuid(), ctx->service->name,
+ mail_user_set_vars(mail_user, geteuid(), getegid(), ctx->service->name,
&user->input.local_ip, &user->input.remote_ip);
mail_set = mail_user_set_get_storage_set(mail_user);
diff -r 95524ab3469f -r 499e4916bed5 src/lib-storage/mail-user.c
--- a/src/lib-storage/mail-user.c Sat Dec 10 08:35:06 2011 +0200
+++ b/src/lib-storage/mail-user.c Sat Dec 10 08:41:01 2011 +0200
@@ -159,11 +159,12 @@
return NULL;
}
-void mail_user_set_vars(struct mail_user *user, uid_t uid, const char *service,
- const struct ip_addr *local_ip,
+void mail_user_set_vars(struct mail_user *user, uid_t uid, gid_t gid,
+ const char *service, const struct ip_addr *local_ip,
const struct ip_addr *remote_ip)
{
user->uid = uid;
+ user->gid = gid;
user->service = p_strdup(user->pool, service);
if (local_ip != NULL && local_ip->family != 0) {
user->local_ip = p_new(user->pool, struct ip_addr, 1);
@@ -188,6 +189,7 @@
{ 'r', NULL, "rip" },
{ 'p', NULL, "pid" },
{ 'i', NULL, "uid" },
+ { '\0', NULL, "gid" },
{ '\0', NULL, NULL }
};
struct var_expand_table *tab;
diff -r 95524ab3469f -r 499e4916bed5 src/lib-storage/mail-user.h
--- a/src/lib-storage/mail-user.h Sat Dec 10 08:35:06 2011 +0200
+++ b/src/lib-storage/mail-user.h Sat Dec 10 08:41:01 2011 +0200
@@ -20,6 +20,7 @@
const char *_home;
uid_t uid;
+ gid_t gid;
const char *service;
struct ip_addr *local_ip, *remote_ip;
const struct var_expand_table *var_expand_table;
@@ -77,8 +78,8 @@
struct mail_user *mail_user_find(struct mail_user *user, const char *name);
/* Specify mail location %variable expansion data. */
-void mail_user_set_vars(struct mail_user *user, uid_t uid, const char *service,
- const struct ip_addr *local_ip,
+void mail_user_set_vars(struct mail_user *user, uid_t uid, gid_t gid,
+ const char *service, const struct ip_addr *local_ip,
const struct ip_addr *remote_ip);
/* Return %variable expansion table for the user. */
const struct var_expand_table *
More information about the dovecot-cvs
mailing list