]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Support inheritance for master auth_requests' events
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 5 Aug 2020 19:45:30 +0000 (22:45 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 27 Aug 2020 06:20:18 +0000 (06:20 +0000)
Requests created by auth worker will inherit from the command's event, while
other events inherit from the global auth_event for now (since
auth-master-connection doesn't have its own event yet).

src/auth/auth-master-connection.c
src/auth/auth-request.c
src/auth/auth-request.h
src/auth/auth-worker-client.c
src/auth/test-lua.c

index dcef66919485b04bcaf1482a0720186c3ff50a21..0cc14e27457de0ef813500a04029903c11cbced0 100644 (file)
@@ -198,7 +198,7 @@ master_input_auth_request(struct auth_master_connection *conn, const char *args,
                return -1;
        }
 
-       auth_request = auth_request_new_dummy();
+       auth_request = auth_request_new_dummy(auth_event);
        auth_request->id = id;
        auth_request->master = conn;
        auth_master_connection_ref(conn);
@@ -585,7 +585,7 @@ master_input_list(struct auth_master_connection *conn, const char *args)
                return TRUE;
        }
 
-       auth_request = auth_request_new_dummy();
+       auth_request = auth_request_new_dummy(auth_event);
        auth_request->id = id;
        auth_request->master = conn;
        auth_master_connection_ref(conn);
index 63d002dbe9d89bcaef6bb0f2a00938f528690f19..f591027fbd70bbd048e2051189d883d8049e8491 100644 (file)
@@ -134,7 +134,7 @@ auth_request_new(const struct mech_module *mech, struct event *parent_event)
        return request;
 }
 
-struct auth_request *auth_request_new_dummy(void)
+struct auth_request *auth_request_new_dummy(struct event *parent_event)
 {
        struct auth_request *request;
        pool_t pool;
@@ -143,7 +143,7 @@ struct auth_request *auth_request_new_dummy(void)
        request = p_new(pool, struct auth_request, 1);
        request->pool = pool;
 
-       auth_request_post_alloc_init(request, NULL);
+       auth_request_post_alloc_init(request, parent_event);
        return request;
 }
 
index 814326a47f502ef51c1ba60c0597523265f9056e..dbb7c6392d1003eab9e52f6ce7b6a7f978510f6c 100644 (file)
@@ -219,7 +219,7 @@ extern const char auth_default_subsystems[2];
 
 struct auth_request *
 auth_request_new(const struct mech_module *mech, struct event *parent_event);
-struct auth_request *auth_request_new_dummy(void);
+struct auth_request *auth_request_new_dummy(struct event *parent_event);
 void auth_request_init(struct auth_request *request);
 struct auth *auth_request_get_auth(struct auth_request *request);
 
index f27a998b027edab3897f96f800367fa0ccc4a914..c0f9ef3d573517cd044391d322440c1b9e3bb4f4 100644 (file)
@@ -108,7 +108,7 @@ bool auth_worker_auth_request_new(struct auth_worker_command *cmd, unsigned int
        struct auth_request *auth_request;
        const char *key, *value;
 
-       auth_request = auth_request_new_dummy();
+       auth_request = auth_request_new_dummy(cmd->event);
 
        cmd->client->refcount++;
        auth_request->context = cmd;
index 83ef35a4e6d169d3e371c1743cd304815db44266..c35848940e53c739c91442292ca04dfb4d88d9c6 100644 (file)
@@ -17,7 +17,7 @@ static struct auth_settings test_lua_auth_set = {
 static struct auth_request *test_db_lua_auth_request_new(void)
 {
        const char *error;
-       struct auth_request *req = auth_request_new_dummy();
+       struct auth_request *req = auth_request_new_dummy(NULL);
        req->set = global_auth_settings;
        struct event *event = event_create(req->event);
        array_push_back(&req->authdb_event, &event);