Mercurial > dovecot > core-2.2
changeset 21734:8b5f6e2ff4a6
auth: oauth2 - remove db_oauth2_request.failed
It is an unnecessary duplication of passdb_result.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 16 Mar 2017 00:42:28 +0200 |
parents | 01ffe59436af |
children | 4119b7774573 |
files | src/auth/db-oauth2.c src/auth/db-oauth2.h src/auth/passdb-oauth2.c |
diffstat | 3 files changed, 18 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/db-oauth2.c Thu Mar 16 00:38:39 2017 +0200 +++ b/src/auth/db-oauth2.c Thu Mar 16 00:42:28 2017 +0200 @@ -398,17 +398,17 @@ } static void db_oauth2_callback(struct db_oauth2_request *req, - enum passdb_result result, bool success, + enum passdb_result result, const char *error) { db_oauth2_lookup_callback_t *callback = req->callback; req->callback = NULL; - i_assert(result == PASSDB_RESULT_OK || (!success && error != NULL)); + i_assert(result == PASSDB_RESULT_OK || error != NULL); if (callback != NULL) { DLLIST_REMOVE(&req->db->head, req); - callback(req->db, result, success, req, error, req->context); + callback(req->db, result, req, error, req->context); } } @@ -427,7 +427,6 @@ if (username_value == NULL) { *result_r = PASSDB_RESULT_INTERNAL_FAILURE; - req->failed = TRUE; *error_r = "No username returned"; return FALSE; } @@ -448,10 +447,10 @@ *error_r = t_strdup_printf("Username '%s' did not match '%s'", str_c(username_req), str_c(username_val)); *result_r = PASSDB_RESULT_USER_UNKNOWN; - req->failed = TRUE; + return FALSE; + } else { + return TRUE; } - - return !req->failed; } static bool @@ -465,10 +464,10 @@ strcmp(req->db->set.active_value, active_value) != 0)) { *error_r = "User account is not active"; *result_r = PASSDB_RESULT_USER_DISABLED; - req->failed = TRUE; + return FALSE; } } - return !req->failed; + return TRUE; } static bool @@ -486,10 +485,10 @@ *error_r = t_strdup_printf("Token is not valid for scope '%s'", req->db->set.scope); *result_r = PASSDB_RESULT_USER_DISABLED; - req->failed = TRUE; + return FALSE; } } - return !req->failed; + return TRUE; } static void db_oauth2_process_fields(struct db_oauth2_request *req) @@ -499,14 +498,13 @@ if (db_oauth2_validate_username(req, &result, &error) && db_oauth2_user_is_enabled(req, &result, &error) && db_oauth2_token_in_scope(req, &result, &error) && - db_oauth2_template_export(req, &result, &error) && - !req->failed) { + db_oauth2_template_export(req, &result, &error)) { result = PASSDB_RESULT_OK; } else { i_assert(result != PASSDB_RESULT_OK && error != NULL); } - db_oauth2_callback(req, result, !req->failed, error); + db_oauth2_callback(req, result, error); } static void @@ -517,8 +515,7 @@ if (!result->success) { /* fail here */ - req->failed = TRUE; - db_oauth2_callback(req, PASSDB_RESULT_INTERNAL_FAILURE, FALSE, result->error); + db_oauth2_callback(req, PASSDB_RESULT_INTERNAL_FAILURE, result->error); return; } db_oauth2_fields_merge(req, result->fields); @@ -556,8 +553,7 @@ enum passdb_result passdb_result = result->success ? PASSDB_RESULT_PASSWORD_MISMATCH : PASSDB_RESULT_INTERNAL_FAILURE; - req->failed = TRUE; - db_oauth2_callback(req, passdb_result, FALSE, result->error == NULL ? "Invalid token" : result->error); + db_oauth2_callback(req, passdb_result, result->error == NULL ? "Invalid token" : result->error); return; }
--- a/src/auth/db-oauth2.h Thu Mar 16 00:38:39 2017 +0200 +++ b/src/auth/db-oauth2.h Thu Mar 16 00:42:28 2017 +0200 @@ -7,7 +7,6 @@ typedef void db_oauth2_lookup_callback_t(struct db_oauth2 *db, enum passdb_result result, - bool success, struct db_oauth2_request *request, const char *error, void *context); @@ -29,8 +28,6 @@ db_oauth2_lookup_callback_t *callback; void *context; verify_plain_callback_t *verify_callback; - - bool failed:1; }; @@ -42,7 +39,7 @@ void db_oauth2_lookup(struct db_oauth2 *db, struct db_oauth2_request *req, const char *token, struct auth_request *request, db_oauth2_lookup_callback_t *callback, void *context); #define db_oauth2_lookup(db, req, token, request, callback, context) \ db_oauth2_lookup(db, req, token + \ - CALLBACK_TYPECHECK(callback, void(*)(struct db_oauth2*, enum passdb_result, bool, struct db_oauth2_request *req, const char*, typeof(context))), \ + CALLBACK_TYPECHECK(callback, void(*)(struct db_oauth2*, enum passdb_result, struct db_oauth2_request *req, const char*, typeof(context))), \ request, (db_oauth2_lookup_callback_t*)callback, (void*)context) #endif
--- a/src/auth/passdb-oauth2.c Thu Mar 16 00:38:39 2017 +0200 +++ b/src/auth/passdb-oauth2.c Thu Mar 16 00:42:28 2017 +0200 @@ -11,15 +11,14 @@ static void oauth2_verify_plain_continue(struct db_oauth2 *db ATTR_UNUSED, - enum passdb_result result, bool success, + enum passdb_result result, struct db_oauth2_request *req, const char *error, struct auth_request *request) { - i_assert(success || result != PASSDB_RESULT_OK); - if (!success && result == PASSDB_RESULT_INTERNAL_FAILURE) + if (result == PASSDB_RESULT_INTERNAL_FAILURE) auth_request_log_error(request, AUTH_SUBSYS_DB, "oauth2 failed: %s", error); - else if (!success) + else if (result != PASSDB_RESULT_OK) auth_request_log_info(request, AUTH_SUBSYS_DB, "oauth2 failed: %s", error); req->verify_callback(result, request);