]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: db-oauth2 - Move db_oauth2_lookup_continue
authorAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 25 May 2020 18:47:35 +0000 (21:47 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 27 May 2020 07:51:31 +0000 (10:51 +0300)
Simplifies next change

src/auth/db-oauth2.c

index d7d44868aaa7dc54e81b65ff7367f4dd5bc1c7a9..8b6d731fbc267d1092aaa1b16033d3ef294043f8 100644 (file)
@@ -632,6 +632,36 @@ static void db_oauth2_lookup_introspect(struct db_oauth2_request *req)
                                              db_oauth2_introspect_continue, req);
 }
 
+static void
+db_oauth2_lookup_continue(struct oauth2_request_result *result,
+                         struct db_oauth2_request *req)
+{
+       enum passdb_result passdb_result;
+       const char *error;
+
+       req->req = NULL;
+
+       if (!result->success) {
+               passdb_result = PASSDB_RESULT_INTERNAL_FAILURE;
+               error = result->error;
+       } else if (!result->valid) {
+               passdb_result = PASSDB_RESULT_PASSWORD_MISMATCH;
+               error = "Invalid token";
+       } else {
+               db_oauth2_fields_merge(req, result->fields);
+               if (*req->db->set.introspection_url != '\0' &&
+                   (req->db->set.force_introspection ||
+                    !db_oauth2_have_all_fields(req))) {
+                       e_debug(authdb_event(req->auth_request),
+                               "oauth2: Introspection needed after token validation");
+                       db_oauth2_lookup_introspect(req);
+                       return;
+               }
+               db_oauth2_process_fields(req, &passdb_result, &error);
+       }
+       db_oauth2_callback(req, passdb_result, error);
+}
+
 static void
 db_oauth2_lookup_passwd_grant(struct oauth2_request_result *result,
                              struct db_oauth2_request *req)
@@ -682,36 +712,6 @@ db_oauth2_lookup_passwd_grant(struct oauth2_request_result *result,
        db_oauth2_callback(req, passdb_result, error);
 }
 
-static void
-db_oauth2_lookup_continue(struct oauth2_request_result *result,
-                         struct db_oauth2_request *req)
-{
-       enum passdb_result passdb_result;
-       const char *error;
-
-       req->req = NULL;
-
-       if (!result->success) {
-               passdb_result = PASSDB_RESULT_INTERNAL_FAILURE;
-               error = result->error;
-       } else if (!result->valid) {
-               passdb_result = PASSDB_RESULT_PASSWORD_MISMATCH;
-               error = "Invalid token";
-       } else {
-               db_oauth2_fields_merge(req, result->fields);
-               if (*req->db->set.introspection_url != '\0' &&
-                   (req->db->set.force_introspection ||
-                    !db_oauth2_have_all_fields(req))) {
-                       e_debug(authdb_event(req->auth_request),
-                               "oauth2: Introspection needed after token validation");
-                       db_oauth2_lookup_introspect(req);
-                       return;
-               }
-               db_oauth2_process_fields(req, &passdb_result, &error);
-       }
-       db_oauth2_callback(req, passdb_result, error);
-}
-
 static int db_oauth2_local_validation(struct db_oauth2_request *req)
 {
        bool is_jwt;