]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Move passdb event lifecycle handling to auth_request_passdb_event_(begin|end)
authorAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 11 Mar 2026 10:30:32 +0000 (12:30 +0200)
committerRebaser <foobar@foobar>
Thu, 26 Mar 2026 08:41:12 +0000 (08:41 +0000)
src/auth/auth-request.c
src/auth/auth-request.h

index d57fc4d16e9375c0a3b129291fb16ecd84145027..ded3d2ffa40751a9be1724043407e3a868a7d0ee 100644 (file)
@@ -614,15 +614,10 @@ auth_request_cache_result_to_str(enum auth_request_cache_result result)
        }
 }
 
-void auth_request_passdb_lookup_begin(struct auth_request *request)
+void auth_request_passdb_event_begin(struct auth_request *request)
 {
        struct event *event;
 
-       i_assert(request->passdb != NULL);
-       i_assert(!request->userdb_lookup);
-
-       request->passdb_cache_result = AUTH_REQUEST_CACHE_NONE;
-
        /* use passdb-specific settings during the passdb lookup */
        request->set = request->passdb->auth_set;
 
@@ -642,11 +637,35 @@ void auth_request_passdb_lookup_begin(struct auth_request *request)
        event_set_min_log_level(event, request->passdb->auth_set->verbose ?
                                LOG_TYPE_INFO : LOG_TYPE_WARNING);
 
+       array_push_back(&request->authdb_event, &event);
+}
+
+void auth_request_passdb_event_end(struct auth_request *request)
+{
+       struct event *event = authdb_event(request);
+       event_unref(&event);
+       array_pop_back(&request->authdb_event);
+
+       /* restore protocol-specific settings */
+       request->set = request->protocol_set;
+}
+
+void auth_request_passdb_lookup_begin(struct auth_request *request)
+{
+       struct event *event;
+
+       i_assert(request->passdb != NULL);
+       i_assert(!request->userdb_lookup);
+       auth_request_passdb_event_begin(request);
+
+       event = authdb_event(request);
+
+       request->passdb_cache_result = AUTH_REQUEST_CACHE_NONE;
+
        e_debug(event_create_passthrough(event)->
                        set_name("auth_passdb_request_started")->
                        event(),
                "Performing passdb lookup");
-       array_push_back(&request->authdb_event, &event);
 }
 
 void auth_request_passdb_lookup_end(struct auth_request *request,
@@ -677,11 +696,7 @@ void auth_request_passdb_lookup_end(struct auth_request *request,
                                        request->passdb_cache_result));
        }
        e_debug(e->event(), "Finished passdb lookup");
-       event_unref(&event);
-       array_pop_back(&request->authdb_event);
-
-       /* restore protocol-specific settings */
-       request->set = request->protocol_set;
+       auth_request_passdb_event_end(request);
 }
 
 void auth_request_userdb_lookup_begin(struct auth_request *request)
index 308d4d934c20da72175d2842cb38c24020708eeb..f8cb1b1a4034f7ce4b7fe1bda7ffb7c1ce7aa302 100644 (file)
@@ -434,6 +434,9 @@ void auth_request_master_user_login_finish(struct auth_request *request);
 void auth_request_fields_alloc(struct auth_request *request);
 void auth_request_fields_init(struct auth_request *request);
 
+void auth_request_passdb_event_begin(struct auth_request *request);
+void auth_request_passdb_event_end(struct auth_request *request);
+
 void auth_request_passdb_lookup_begin(struct auth_request *request);
 void auth_request_passdb_lookup_end(struct auth_request *request,
                                    enum passdb_result result);