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;
}
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;
}
if (--request->refcount > 0)
return;
+ event_unref(&request->event);
auth_request_stats_send(request);
auth_request_state_count[request->state]--;
auth_refresh_proctitle();
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
#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);