Skip to content

Commit

Permalink
auth: Add event with category "auth" to struct auth_request.
Browse files Browse the repository at this point in the history
  • Loading branch information
Sergey-Kitov authored and cmouse committed Aug 7, 2018
1 parent b2f1135 commit 3bbc48e
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 20 deletions.
2 changes: 1 addition & 1 deletion src/auth/auth-request-handler.c
Expand Up @@ -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;
Expand Down
35 changes: 17 additions & 18 deletions src/auth/auth-request.c
Expand Up @@ -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;
}

Expand All @@ -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;
}

Expand Down Expand Up @@ -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();
Expand Down
4 changes: 3 additions & 1 deletion src/auth/auth-request.h
Expand Up @@ -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
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 3bbc48e

Please sign in to comment.