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;
 	}