[Dovecot] patch for serdb-ldap which allows set user_global_mail variable
Taras
public at alch-lab.com
Mon Jan 15 00:08:17 UTC 2007
--- dovecot-1.0.rc17/src/auth/db-ldap.~h 2007-01-15
03:23:09.000000000 +0200
+++ dovecot-1.0.rc17/src/auth/db-ldap.h 2006-11-07 18:47:00.000000000
+0200
@@ -38,6 +38,7 @@
const char *default_pass_scheme;
const char *user_global_uid;
const char *user_global_gid;
+ const char *user_global_mail;
/* ... */
int ldap_deref, ldap_scope;
--- dovecot-1.0.rc17/src/auth/db-ldap.~c 2007-01-15
03:23:09.000000000 +0200
+++ dovecot-1.0.rc17/src/auth/db-ldap.c 2006-11-19 15:42:41.000000000
+0200
@@ -67,6 +67,7 @@
DEF(SET_STR, default_pass_scheme),
DEF(SET_STR, user_global_uid),
DEF(SET_STR, user_global_gid),
+ DEF(SET_STR, user_global_mail),
{ 0, NULL, 0 }
};
@@ -93,7 +94,8 @@
MEMBER(pass_filter) "(&(objectClass=posixAccount)(uid=%u))",
MEMBER(default_pass_scheme) "crypt",
MEMBER(user_global_uid) "",
- MEMBER(user_global_gid) ""
+ MEMBER(user_global_gid) "",
+ MEMBER(user_global_mail) NULL
};
static struct ldap_connection *ldap_connections = NULL;
--- dovecot-1.0.rc17/src/auth/userdb-ldap.~c 2007-01-15
03:23:09.000000000 +0200
+++ dovecot-1.0.rc17/src/auth/userdb-ldap.c 2006-12-21
18:06:28.000000000 +0200
@@ -72,7 +72,7 @@
const char *name;
char *attr, **vals;
unsigned int i;
- bool seen_uid = FALSE, seen_gid = FALSE;
+ bool seen_uid = FALSE, seen_gid = FALSE, seen_mail = FALSE ;
reply = auth_stream_reply_init(auth_request);
auth_stream_reply_add(reply, NULL, auth_request->user);
@@ -94,6 +94,7 @@
return NULL;
seen_gid = TRUE;
} else if (*name != '\0') {
+ if (strcmp(name, "mail") == 0) {seen_mail = TRUE;}
for (i = 0; vals[i] != NULL; i++) {
auth_stream_reply_add(reply, name,
vals[i]);
@@ -126,6 +127,16 @@
auth_stream_reply_add(reply, "gid", dec2str(conn->set.gid));
}
+ if (!seen_mail) {
+ if (*conn->set.user_global_mail != '\0') {
+ const struct var_expand_table *vars;
+ vars = auth_request_get_var_expand_table(auth_request,
auth_request_str_escape);
+ string_t *str;
+ str = t_str_new(512);
+ var_expand(str, conn->set.user_global_mail, vars);
+ auth_stream_reply_add(reply, "mail", str_c(str));
+ }
+ }
return reply;
}
--- dovecot-1.0.rc17/doc/dovecot-ldap.~conf 2007-01-15
03:23:09.000000000 +0200
+++ dovecot-1.0.rc17/doc/dovecot-ldap.conf 2006-11-07
18:47:00.000000000 +0200
@@ -114,3 +114,9 @@
# If the UID/GID is still found from LDAP reply, it overrides these values.
#user_global_uid =
#user_global_gid =
+
+# You can use same mail path all user accounts if you really want to.
+# Same variables can be used as for filter, see user_filter
+# If the 'mail' variable is still found from LDAP reply, it overrides
these value.
+#user_global_mail =
+
More information about the dovecot
mailing list