Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5153:83f361144a8a HEAD
Added auth_request_set_fields() and used it instead of duplicating the code
in multiple places.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 16 Feb 2007 19:23:01 +0200 |
parents | 3dc493d152ac |
children | b9cb27ecee98 |
files | src/auth/auth-request.c src/auth/auth-request.h src/auth/passdb-blocking.c src/auth/passdb-cache.c |
diffstat | 4 files changed, 27 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-request.c Fri Feb 16 19:13:07 2007 +0200 +++ b/src/auth/auth-request.c Fri Feb 16 19:23:01 2007 +0200 @@ -980,6 +980,27 @@ } } +void auth_request_set_fields(struct auth_request *request, + const char *const *fields, + const char *default_scheme) +{ + const char *key, *value; + + t_push(); + for (; *fields != NULL; fields++) { + value = strchr(*fields, '='); + if (value == NULL) { + key = *fields; + value = ""; + } else { + key = t_strdup_until(*fields, value); + value++; + } + auth_request_set_field(request, key, value, default_scheme); + } + t_pop(); +} + int auth_request_password_verify(struct auth_request *request, const char *plain_password, const char *crypted_password,
--- a/src/auth/auth-request.h Fri Feb 16 19:13:07 2007 +0200 +++ b/src/auth/auth-request.h Fri Feb 16 19:23:01 2007 +0200 @@ -128,6 +128,9 @@ void auth_request_set_field(struct auth_request *request, const char *name, const char *value, const char *default_scheme); +void auth_request_set_fields(struct auth_request *request, + const char *const *fields, + const char *default_scheme); int auth_request_password_verify(struct auth_request *request, const char *plain_password,
--- a/src/auth/passdb-blocking.c Fri Feb 16 19:13:07 2007 +0200 +++ b/src/auth/passdb-blocking.c Fri Feb 16 19:23:01 2007 +0200 @@ -90,16 +90,7 @@ i_assert(auth_stream_is_empty(request->extra_fields) || request->master_user != NULL); - for (tmp = t_strsplit(reply, "\t"); *tmp != NULL; tmp++) { - p = strchr(*tmp, '='); - if (p == NULL) - p = ""; - else { - *tmp = t_strdup_until(*tmp, p); - p++; - } - auth_request_set_field(request, *tmp, p, NULL); - } + auth_request_set_fields(request, t_strsplit(reply, "\t"), NULL); } return 0; }
--- a/src/auth/passdb-cache.c Fri Feb 16 19:13:07 2007 +0200 +++ b/src/auth/passdb-cache.c Fri Feb 16 19:23:01 2007 +0200 @@ -9,26 +9,6 @@ struct auth_cache *passdb_cache = NULL; -static void list_save(struct auth_request *request, const char *const *list) -{ - const char *name, *value; - - for (; *list != NULL; list++) { - t_push(); - value = strchr(*list, '='); - if (value == NULL) { - name = *list; - value = ""; - } else { - name = t_strcut(*list, '='); - value++; - } - - auth_request_set_field(request, name, value, NULL); - t_pop(); - } -} - bool passdb_cache_verify_plain(struct auth_request *request, const char *key, const char *password, enum passdb_result *result_r, int use_expired) @@ -78,7 +58,7 @@ /* save the extra_fields only after we know we're using the cached data */ - list_save(request, list + 1); + auth_request_set_fields(request, list + 1, NULL); *result_r = ret > 0 ? PASSDB_RESULT_OK : PASSDB_RESULT_PASSWORD_MISMATCH; @@ -111,7 +91,7 @@ } list = t_strsplit(value, "\t"); - list_save(request, list + 1); + auth_request_set_fields(request, list + 1, NULL); *result_r = PASSDB_RESULT_OK; *password_r = list[0];