[prev in list] [next in list] [prev in thread] [next in thread]
List: dovecot-cvs
Subject: [dovecot-cvs] dovecot/src/auth passdb-checkpassword.c, 1.18.2.6, 1.18.2.7
From: cras () dovecot ! org (cras at dovecot ! org)
Date: 2006-08-22 2:49:55
Message-ID: 20060822024955.260A6C0131CB () talvi ! dovecot ! org
[Download RAW message or body]
Update of /var/lib/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv17258
Modified Files:
Tag: branch_1_0
passdb-checkpassword.c
Log Message:
If master db has extra fields set, send them to checkpassword in
environment.
Index: passdb-checkpassword.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/passdb-checkpassword.c,v
retrieving revision 1.18.2.6
retrieving revision 1.18.2.7
diff -u -d -r1.18.2.6 -r1.18.2.7
--- passdb-checkpassword.c 17 Aug 2006 19:48:24 -0000 1.18.2.6
+++ passdb-checkpassword.c 22 Aug 2006 02:49:52 -0000 1.18.2.7
@@ -182,6 +182,21 @@
}
}
+static void env_put_extra_fields(const char *extra_fields)
+{
+ const char *const *tmp;
+ const char *key, *p;
+
+ for (tmp = t_strsplit(extra_fields, "\t"); *tmp != NULL; tmp++) {
+ key = t_str_ucase(t_strcut(*tmp, '='));
+ p = strchr(*tmp, '=');
+ if (p == NULL)
+ env_put(t_strconcat(key, "=1", NULL));
+ else
+ env_put(t_strconcat(key, p, NULL));
+ }
+}
+
static void
checkpassword_verify_plain_child(struct auth_request *request,
struct checkpassword_passdb_module *module,
@@ -216,6 +231,13 @@
env_put(t_strconcat("MASTER_USER=",
request->master_user, NULL));
}
+ if (request->extra_fields != NULL) {
+ const char *fields =
+ auth_stream_reply_export(request->extra_fields);
+
+ /* extra fields could come from master db */
+ env_put_extra_fields(fields);
+ }
auth_request_log_debug(request, "checkpassword",
"Executed: %s", cmd);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic