From: Timo Sirainen Date: Wed, 5 Aug 2020 19:45:30 +0000 (+0300) Subject: auth: Support inheritance for master auth_requests' events X-Git-Tag: 2.3.13~298 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e53e98204dbd3daa75ef0be0ede330b692830e27;p=thirdparty%2Fdovecot%2Fcore.git auth: Support inheritance for master auth_requests' events 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). --- diff --git a/src/auth/auth-master-connection.c b/src/auth/auth-master-connection.c index dcef669194..0cc14e2745 100644 --- a/src/auth/auth-master-connection.c +++ b/src/auth/auth-master-connection.c @@ -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); diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 63d002dbe9..f591027fbd 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -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; } diff --git a/src/auth/auth-request.h b/src/auth/auth-request.h index 814326a47f..dbb7c6392d 100644 --- a/src/auth/auth-request.h +++ b/src/auth/auth-request.h @@ -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); diff --git a/src/auth/auth-worker-client.c b/src/auth/auth-worker-client.c index f27a998b02..c0f9ef3d57 100644 --- a/src/auth/auth-worker-client.c +++ b/src/auth/auth-worker-client.c @@ -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; diff --git a/src/auth/test-lua.c b/src/auth/test-lua.c index 83ef35a4e6..c35848940e 100644 --- a/src/auth/test-lua.c +++ b/src/auth/test-lua.c @@ -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);