[dovecot-cvs] dovecot/src/auth auth-request.c, 1.17,
1.18 auth-request.h, 1.13, 1.14 passdb-cache.c, 1.8,
1.9 passdb-ldap.c, 1.26, 1.27 passdb-sql.c, 1.15, 1.16
cras at dovecot.org
cras at dovecot.org
Fri Apr 8 02:42:49 EEST 2005
Update of /var/lib/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv3787
Modified Files:
auth-request.c auth-request.h passdb-cache.c passdb-ldap.c
passdb-sql.c
Log Message:
Try to keep scheme always included in auth_request->passdb_password.
Index: auth-request.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/auth-request.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- auth-request.c 2 Apr 2005 22:00:49 -0000 1.17
+++ auth-request.c 7 Apr 2005 23:42:46 -0000 1.18
@@ -403,21 +403,28 @@
}
void auth_request_set_field(struct auth_request *request,
- const char *name, const char *value)
+ const char *name, const char *value,
+ const char *default_scheme)
{
string_t *str;
i_assert(value != NULL);
if (strcmp(name, "password") == 0) {
- if (request->passdb_password == NULL) {
+ if (request->passdb_password != NULL) {
+ auth_request_log_error(request, "auth",
+ "Multiple password values not supported");
+ return;
+ }
+
+ if (*value == '{') {
request->passdb_password =
p_strdup(request->pool, value);
} else {
- auth_request_log_error(request, "auth",
- "Multiple password values not supported");
+ request->passdb_password =
+ p_strdup_printf(request->pool, "{%s}%s",
+ default_scheme, value);
}
- return;
}
if (strcmp(name, "user") == 0) {
Index: auth-request.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/auth-request.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- auth-request.h 7 Mar 2005 20:21:52 -0000 1.13
+++ auth-request.h 7 Apr 2005 23:42:46 -0000 1.14
@@ -91,7 +91,8 @@
const char *username, const char **error_r);
void auth_request_set_field(struct auth_request *request,
- const char *name, const char *value);
+ const char *name, const char *value,
+ const char *default_scheme);
const struct var_expand_table *
auth_request_get_var_expand_table(const struct auth_request *auth_request,
Index: passdb-cache.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/passdb-cache.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- passdb-cache.c 5 Mar 2005 11:48:13 -0000 1.8
+++ passdb-cache.c 7 Apr 2005 23:42:46 -0000 1.9
@@ -27,7 +27,8 @@
value++;
}
- auth_request_set_field(request, name, value);
+ i_assert(*value == '{');
+ auth_request_set_field(request, name, value, NULL);
t_pop();
}
}
Index: passdb-ldap.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/passdb-ldap.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- passdb-ldap.c 16 Mar 2005 19:03:58 -0000 1.26
+++ passdb-ldap.c 7 Apr 2005 23:42:46 -0000 1.27
@@ -55,7 +55,8 @@
if (name != NULL && vals != NULL) {
for (i = 0; vals[i] != NULL; i++) {
auth_request_set_field(auth_request,
- name, vals[i]);
+ name, vals[i],
+ conn->set.default_pass_scheme);
}
}
@@ -118,10 +119,7 @@
return;
scheme = password_get_scheme(&password);
- if (scheme == NULL) {
- scheme = conn->set.default_pass_scheme;
- i_assert(scheme != NULL);
- }
+ i_assert(scheme != NULL); /* auth_request_set_field() sets it */
if (ldap_request->credentials != -1) {
passdb_handle_credentials(passdb_result,
Index: passdb-sql.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/passdb-sql.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- passdb-sql.c 28 Feb 2005 22:19:21 -0000 1.15
+++ passdb-sql.c 7 Apr 2005 23:42:46 -0000 1.16
@@ -43,8 +43,10 @@
name = sql_result_get_field_name(result, i);
value = sql_result_get_field_value(result, i);
- if (value != NULL)
- auth_request_set_field(auth_request, name, value);
+ if (value != NULL) {
+ auth_request_set_field(auth_request, name, value,
+ passdb_sql_conn->set.default_pass_scheme);
+ }
}
}
@@ -85,10 +87,7 @@
}
scheme = password_get_scheme(&password);
- if (scheme == NULL) {
- scheme = passdb_sql_conn->set.default_pass_scheme;
- i_assert(scheme != NULL);
- }
+ i_assert(scheme != NULL); /* auth_request_set_field() sets it */
if (sql_request->credentials != -1) {
passdb_handle_credentials(passdb_result,
More information about the dovecot-cvs
mailing list