Mercurial > dovecot > core-2.2
changeset 21735:4119b7774573
auth: oauth2 - Clarify token validation success/valid error handling
result->error is NULL only if result->success && !result->valid.
Also !result->success is the more important error handling case.
Write out these cases explicitly so it's easier to understand.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 16 Mar 2017 01:35:38 +0200 |
parents | 8b5f6e2ff4a6 |
children | 7d3ad0620805 |
files | src/auth/db-oauth2.c |
diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/db-oauth2.c Thu Mar 16 00:42:28 2017 +0200 +++ b/src/auth/db-oauth2.c Thu Mar 16 01:35:38 2017 +0200 @@ -548,12 +548,13 @@ { req->req = NULL; - if (!result->success || !result->valid) { - /* no point going forward */ - enum passdb_result passdb_result = result->success ? - PASSDB_RESULT_PASSWORD_MISMATCH : - PASSDB_RESULT_INTERNAL_FAILURE; - db_oauth2_callback(req, passdb_result, result->error == NULL ? "Invalid token" : result->error); + if (!result->success) { + db_oauth2_callback(req, PASSDB_RESULT_INTERNAL_FAILURE, + result->error); + return; + } else if (!result->valid) { + db_oauth2_callback(req, PASSDB_RESULT_PASSWORD_MISMATCH, + "Invalid token"); return; }