input->sasl_mech = &dsasl_client_mech_plain;
i_zero(&sasl_set);
+ sasl_set.event_parent = input->event;
if (input->master_user == NULL)
sasl_set.authid = input->username;
else {
i_assert(client->common.proxy_sasl_client == NULL);
i_zero(&sasl_set);
+ sasl_set.event_parent = client->common.event;
sasl_set.authid = client->common.proxy_master_user != NULL ?
client->common.proxy_master_user : client->common.proxy_user;
sasl_set.authzid = client->common.proxy_user;
}
i_zero(&sasl_set);
+ sasl_set.event_parent = conn->event;
if (*set->imapc_master_user == '\0')
sasl_set.authid = set->imapc_user;
else {
struct dsasl_client {
pool_t pool;
+ struct event *event;
+
struct dsasl_client_settings set;
char *password;
const struct dsasl_client_mech *mech;
#include "safe-memset.h"
#include "dsasl-client-private.h"
+struct event_category event_category_sasl_client = {
+ .name = "sasl-client"
+};
+
static int init_refcount = 0;
static ARRAY(const struct dsasl_client_mech *) dsasl_mechanisms = ARRAY_INIT;
client->set.protocol = p_strdup(pool, set->protocol);
client->set.host = p_strdup(pool, set->host);
client->set.port = set->port;
+
+ client->event = event_create(set->event_parent);
+ event_add_category(client->event, &event_category_sasl_client);
+ event_set_append_log_prefix(client->event,
+ t_strdup_printf("sasl(%s): ", t_str_lcase(mech->name)));
+
return client;
}
client->mech->free(client);
if (client->password != NULL)
safe_memset(client->password, 0, strlen(client->password));
+ event_unref(&client->event);
pool_unref(&client->pool);
}
#include "iostream-ssl.h"
struct dsasl_client_settings {
+ struct event *event_parent;
+
/* authentication ID - must be set with most mechanisms */
const char *authid;
/* authorization ID (who to log in as, if authentication ID is a
sasl_server_request_create(&fctx.ssrctx, server_mech, "imap", NULL);
struct dsasl_client_settings client_set = {
+ .event_parent = fuzz_event,
.authid = params.authid,
.authzid = params.authzid,
.password = params.client_password,
test->server.password);
struct dsasl_client_settings client_set = {
+ .event_parent = test_event,
.authid = (realm == NULL ? authid :
t_strconcat(authid, "@", realm, NULL)),
.authzid = authzid,
}
i_zero(&sasl_set);
+ sasl_set.event_parent = conn->event;
if (set->master_user == NULL)
sasl_set.authid = set->username;
else {
i_assert(client->common.proxy_sasl_client == NULL);
i_zero(&sasl_set);
+ sasl_set.event_parent = client->common.event;
sasl_set.authid = client->common.proxy_master_user != NULL ?
client->common.proxy_master_user : client->common.proxy_user;
sasl_set.authzid = client->common.proxy_user;
i_assert(client->common.proxy_sasl_client == NULL);
i_zero(&sasl_set);
+ sasl_set.event_parent = client->common.event;
sasl_set.authid = client->common.proxy_master_user != NULL ?
client->common.proxy_master_user : client->common.proxy_user;
sasl_set.authzid = client->common.proxy_user;