]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: auth-request - Completely move mech_event to sasl-server request
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 23 Oct 2023 16:03:10 +0000 (18:03 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Thu, 9 Oct 2025 08:41:22 +0000 (08:41 +0000)
src/auth/auth-request.c
src/auth/auth-request.h
src/auth/auth-sasl-mech-oauth2.c
src/auth/auth-sasl.c
src/auth/sasl-server-private.h
src/auth/sasl-server-request.c
src/auth/sasl-server.c

index c58ceef3d9a8f11aa29c1e06bc251cf57ffbab05..037a98dd30ae4176f9c7b6edc316bf57af35a8dd 100644 (file)
@@ -194,14 +194,7 @@ void auth_request_init(struct auth_request *request)
 void auth_request_init_sasl(struct auth_request *request,
                            const struct sasl_server_mech *mech)
 {
-       request->mech_event = event_create(request->event);
-
        auth_sasl_request_init(request, mech);
-
-       const char *prefix = t_strconcat(
-               t_str_lcase(request->sasl.req.mech_name), ": ", NULL);
-       event_set_append_log_prefix(request->mech_event, prefix);
-
        auth_request_init(request);
 }
 
@@ -375,7 +368,6 @@ void auth_request_unref(struct auth_request **_request)
        if (request->handler_pending_reply)
                auth_request_handler_abort(request);
 
-       event_unref(&request->mech_event);
        event_unref(&request->event);
        auth_request_state_count[request->state]--;
        auth_refresh_proctitle();
index 8b9fb75c5940e71d5b00808088b94cdf77d2bd05..c30a6e36cd5c4b1a61e6f3c7eea54f0c32c50270 100644 (file)
@@ -123,7 +123,6 @@ struct auth_request {
        pool_t pool;
 
        struct event *event;
-       struct event *mech_event;
        ARRAY(struct event *) authdb_event;
 
         enum auth_request_state state;
index c6a42d9fd5b58400cba13aa3cea69589d6c35945..a537fedfc19a07a36eaa3ef43a4dce3eb26fa213 100644 (file)
@@ -72,16 +72,16 @@ mech_oauth2_verify_token_continue(struct oauth2_auth_request *oauth2_req,
        /* OK result user fields */
        if (args[0] == NULL || args[1] == NULL) {
                result = PASSDB_RESULT_INTERNAL_FAILURE;
-               e_error(request->mech_event,
+               e_error(request->event,
                        "BUG: Invalid auth worker response: empty");
        } else if (str_to_int(args[1], &parsed) < 0) {
                result = PASSDB_RESULT_INTERNAL_FAILURE;
-               e_error(request->mech_event,
+               e_error(request->event,
                        "BUG: Invalid auth worker response: cannot parse '%s'",
                        args[1]);
        } else if (args[2] == NULL) {
                result = PASSDB_RESULT_INTERNAL_FAILURE;
-               e_error(request->mech_event,
+               e_error(request->event,
                        "BUG: Invalid auth worker response: cannot parse '%s'",
                        args[1]);
        } else {
@@ -130,9 +130,9 @@ mech_oauth2_verify_token_local_continue(struct db_oauth2_request *db_req,
                pool_unref(&db_req->pool);
                return;
        } else if (result == PASSDB_RESULT_INTERNAL_FAILURE) {
-               e_error(request->mech_event, "oauth2 failed: %s", error);
+               e_error(request->event, "oauth2 failed: %s", error);
        } else {
-               e_info(request->mech_event, "oauth2 failed: %s", error);
+               e_info(request->event, "oauth2 failed: %s", error);
        }
        oauth2_verify_finish(result, request);
        auth_request_unref(&request);
index 772cd561544490519e4ee7334df84e3bc796161f..e6fa3534ed5ed8f7bc5702ff91d1c211aebf4576 100644 (file)
@@ -304,7 +304,7 @@ void auth_sasl_request_init(struct auth_request *request,
 {
        sasl_server_request_create(&request->sasl.req, mech,
                                   auth_sasl_translate_protocol_name(request),
-                                  request->mech_event);
+                                  request->event);
 }
 
 void auth_sasl_request_deinit(struct auth_request *request)
index f8a5c7b28b58176d92086ef4bb3c8e8816da23ad..d48b8294db7c2d648f8507b531279236b102a5c4 100644 (file)
@@ -3,6 +3,8 @@
 
 #include "sasl-server-protected.h"
 
+extern struct event_category event_category_sasl_server;
+
 enum sasl_server_passdb_type {
        SASL_SERVER_PASSDB_TYPE_VERIFY_PLAIN,
        SASL_SERVER_PASSDB_TYPE_LOOKUP_CREDENTIALS,
@@ -15,6 +17,7 @@ struct sasl_server_request {
        struct sasl_server_instance *sinst;
        struct sasl_server_req_ctx *rctx;
        struct sasl_server_mech_request *mech;
+       struct event *event;
 
        enum sasl_server_passdb_type passdb_type;
        sasl_server_mech_passdb_callback_t *passdb_callback;
index 461cd2c70d453a9498b48d28a01d34f61a101266..5a5deefb6b611677cbd3e866f198f7e446570804 100644 (file)
@@ -37,6 +37,16 @@ void sasl_server_request_create(struct sasl_server_req_ctx *rctx,
        sinst->requests++;
        server->requests++;
 
+       if (event_parent == NULL) {
+               req->event = event_create(sinst->event);
+               event_drop_parent_log_prefixes(req->event, 1);
+       } else {
+               req->event = event_create(event_parent);
+               event_add_category(req->event, &event_category_sasl_server);
+       }
+       event_set_append_log_prefix(req->event,
+               t_strdup_printf("sasl(%s): ", t_str_lcase(mech->def->name)));
+
        struct sasl_server_mech_request *mreq;
 
        if (mech->def->funcs->auth_new != NULL)
@@ -48,7 +58,7 @@ void sasl_server_request_create(struct sasl_server_req_ctx *rctx,
        mreq->request = request;
        mreq->set = &sinst->set;
        mreq->mech = mech;
-       mreq->mech_event = event_parent;
+       mreq->mech_event = req->event;
        mreq->protocol = p_strdup(pool, protocol);
 
        req->mech = mreq;
@@ -90,6 +100,7 @@ void sasl_server_mech_request_unref(struct sasl_server_mech_request **_mreq)
 
        if (req->rctx != NULL)
                i_zero(req->rctx);
+       event_unref(&req->event);
        pool_unref(&req->pool);
 }
 
index fe38ccbd3159ea613d58a522f967168ca56e1733..ac1bd3b86e16ec5904775271ab329582e892096a 100644 (file)
@@ -5,7 +5,7 @@
 
 #include "sasl-server-private.h"
 
-static struct event_category event_category_sasl_server = {
+struct event_category event_category_sasl_server = {
        .name = "sasl-server"
 };