From 3bbc48ee86cfa58339d4466a902067bdc1a0e86a Mon Sep 17 00:00:00 2001 From: Sergey Kitov Date: Mon, 19 Mar 2018 13:53:33 +0200 Subject: [PATCH] auth: Add event with category "auth" to struct auth_request. --- src/auth/auth-request-handler.c | 2 +- src/auth/auth-request.c | 35 ++++++++++++++++----------------- src/auth/auth-request.h | 4 +++- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/auth/auth-request-handler.c b/src/auth/auth-request-handler.c index 7e64cae1d1..ae7b458c9c 100644 --- a/src/auth/auth-request-handler.c +++ b/src/auth/auth-request-handler.c @@ -517,7 +517,7 @@ bool auth_request_handler_auth_begin(struct auth_request_handler *handler, } } - request = auth_request_new(mech); + request = auth_request_new(mech, handler->conn->event); request->handler = handler; request->connect_uid = handler->connect_uid; request->client_pid = handler->client_pid; diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 5bfe122d78..691b665970 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -76,25 +76,31 @@ void auth_request_lookup_credentials_policy_continue(struct auth_request *reques static void auth_request_policy_check_callback(int result, void *context); -struct auth_request * -auth_request_new(const struct mech_module *mech) +static void auth_request_post_alloc_init(struct auth_request *request, struct event *parent_event) { - struct auth_request *request; - - request = mech->auth_new(); - request->state = AUTH_REQUEST_STATE_NEW; auth_request_state_count[AUTH_REQUEST_STATE_NEW]++; - request->refcount = 1; request->last_access = ioloop_time; request->session_pid = (pid_t)-1; - request->set = global_auth_settings; request->debug = request->set->debug; + request->extra_fields = auth_fields_init(request->pool); + request->event = event_create(parent_event); + if (request->set->debug) + event_set_forced_debug(request->event, TRUE); + event_add_category(request->event, &event_category_auth); +} + +struct auth_request * +auth_request_new(const struct mech_module *mech, struct event *parent_event) +{ + struct auth_request *request; + + request = mech->auth_new(); + auth_request_post_alloc_init(request, parent_event); request->mech = mech; request->mech_name = mech->mech_name; - request->extra_fields = auth_fields_init(request->pool); return request; } @@ -107,15 +113,7 @@ struct auth_request *auth_request_new_dummy(void) request = p_new(pool, struct auth_request, 1); request->pool = pool; - request->state = AUTH_REQUEST_STATE_NEW; - auth_request_state_count[AUTH_REQUEST_STATE_NEW]++; - - request->refcount = 1; - request->last_access = ioloop_time; - request->session_pid = (pid_t)-1; - request->set = global_auth_settings; - request->debug = request->set->debug; - request->extra_fields = auth_fields_init(request->pool); + auth_request_post_alloc_init(request, NULL); return request; } @@ -255,6 +253,7 @@ void auth_request_unref(struct auth_request **_request) if (--request->refcount > 0) return; + event_unref(&request->event); auth_request_stats_send(request); auth_request_state_count[request->state]--; auth_refresh_proctitle(); diff --git a/src/auth/auth-request.h b/src/auth/auth-request.h index d4a0eba9f4..c23ce80c74 100644 --- a/src/auth/auth-request.h +++ b/src/auth/auth-request.h @@ -33,6 +33,8 @@ struct auth_request { int refcount; pool_t pool; + + struct event *event; enum auth_request_state state; /* user contains the user who is being authenticated. When master user is logging in as someone else, it gets more @@ -173,7 +175,7 @@ extern const char auth_default_subsystems[2]; #define AUTH_SUBSYS_MECH &auth_default_subsystems[1] struct auth_request * -auth_request_new(const struct mech_module *mech); +auth_request_new(const struct mech_module *mech, struct event *parent_event); struct auth_request *auth_request_new_dummy(void); void auth_request_init(struct auth_request *request); struct auth *auth_request_get_auth(struct auth_request *request); -- 2.47.3