Mercurial > dovecot > core-2.2
changeset 3272:36db3285f4a7 HEAD
Try to keep scheme always included in auth_request->passdb_password.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 08 Apr 2005 02:42:46 +0300 |
parents | 55bc96b23bc1 |
children | 9860bab7b7e3 |
files | src/auth/auth-request.c src/auth/auth-request.h src/auth/passdb-cache.c src/auth/passdb-ldap.c src/auth/passdb-sql.c |
diffstat | 5 files changed, 24 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-request.c Fri Apr 08 02:29:22 2005 +0300 +++ b/src/auth/auth-request.c Fri Apr 08 02:42:46 2005 +0300 @@ -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) {
--- a/src/auth/auth-request.h Fri Apr 08 02:29:22 2005 +0300 +++ b/src/auth/auth-request.h Fri Apr 08 02:42:46 2005 +0300 @@ -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,
--- a/src/auth/passdb-cache.c Fri Apr 08 02:29:22 2005 +0300 +++ b/src/auth/passdb-cache.c Fri Apr 08 02:42:46 2005 +0300 @@ -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(); } }
--- a/src/auth/passdb-ldap.c Fri Apr 08 02:29:22 2005 +0300 +++ b/src/auth/passdb-ldap.c Fri Apr 08 02:42:46 2005 +0300 @@ -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,
--- a/src/auth/passdb-sql.c Fri Apr 08 02:29:22 2005 +0300 +++ b/src/auth/passdb-sql.c Fri Apr 08 02:42:46 2005 +0300 @@ -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,