void auth_request_init_sasl(struct auth_request *request,
const struct sasl_server_mech *mech)
{
- request->mech_event = event_create(request->event);
-
auth_sasl_request_init(request, mech);
-
- const char *prefix = t_strconcat(
- t_str_lcase(request->sasl.req.mech_name), ": ", NULL);
- event_set_append_log_prefix(request->mech_event, prefix);
-
auth_request_init(request);
}
if (request->handler_pending_reply)
auth_request_handler_abort(request);
- event_unref(&request->mech_event);
event_unref(&request->event);
auth_request_state_count[request->state]--;
auth_refresh_proctitle();
pool_t pool;
struct event *event;
- struct event *mech_event;
ARRAY(struct event *) authdb_event;
enum auth_request_state state;
/* OK result user fields */
if (args[0] == NULL || args[1] == NULL) {
result = PASSDB_RESULT_INTERNAL_FAILURE;
- e_error(request->mech_event,
+ e_error(request->event,
"BUG: Invalid auth worker response: empty");
} else if (str_to_int(args[1], &parsed) < 0) {
result = PASSDB_RESULT_INTERNAL_FAILURE;
- e_error(request->mech_event,
+ e_error(request->event,
"BUG: Invalid auth worker response: cannot parse '%s'",
args[1]);
} else if (args[2] == NULL) {
result = PASSDB_RESULT_INTERNAL_FAILURE;
- e_error(request->mech_event,
+ e_error(request->event,
"BUG: Invalid auth worker response: cannot parse '%s'",
args[1]);
} else {
pool_unref(&db_req->pool);
return;
} else if (result == PASSDB_RESULT_INTERNAL_FAILURE) {
- e_error(request->mech_event, "oauth2 failed: %s", error);
+ e_error(request->event, "oauth2 failed: %s", error);
} else {
- e_info(request->mech_event, "oauth2 failed: %s", error);
+ e_info(request->event, "oauth2 failed: %s", error);
}
oauth2_verify_finish(result, request);
auth_request_unref(&request);
{
sasl_server_request_create(&request->sasl.req, mech,
auth_sasl_translate_protocol_name(request),
- request->mech_event);
+ request->event);
}
void auth_sasl_request_deinit(struct auth_request *request)
#include "sasl-server-protected.h"
+extern struct event_category event_category_sasl_server;
+
enum sasl_server_passdb_type {
SASL_SERVER_PASSDB_TYPE_VERIFY_PLAIN,
SASL_SERVER_PASSDB_TYPE_LOOKUP_CREDENTIALS,
struct sasl_server_instance *sinst;
struct sasl_server_req_ctx *rctx;
struct sasl_server_mech_request *mech;
+ struct event *event;
enum sasl_server_passdb_type passdb_type;
sasl_server_mech_passdb_callback_t *passdb_callback;
sinst->requests++;
server->requests++;
+ if (event_parent == NULL) {
+ req->event = event_create(sinst->event);
+ event_drop_parent_log_prefixes(req->event, 1);
+ } else {
+ req->event = event_create(event_parent);
+ event_add_category(req->event, &event_category_sasl_server);
+ }
+ event_set_append_log_prefix(req->event,
+ t_strdup_printf("sasl(%s): ", t_str_lcase(mech->def->name)));
+
struct sasl_server_mech_request *mreq;
if (mech->def->funcs->auth_new != NULL)
mreq->request = request;
mreq->set = &sinst->set;
mreq->mech = mech;
- mreq->mech_event = event_parent;
+ mreq->mech_event = req->event;
mreq->protocol = p_strdup(pool, protocol);
req->mech = mreq;
if (req->rctx != NULL)
i_zero(req->rctx);
+ event_unref(&req->event);
pool_unref(&req->pool);
}
#include "sasl-server-private.h"
-static struct event_category event_category_sasl_server = {
+struct event_category event_category_sasl_server = {
.name = "sasl-server"
};