[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