From: Marco Bettini Date: Thu, 10 Oct 2024 12:01:56 +0000 (+0000) Subject: lib-ldap: ldap_client - Add event X-Git-Tag: 2.4.1~424 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a30dc9cc31744ba2a1782dab80a03d6574efc1d1;p=thirdparty%2Fdovecot%2Fcore.git lib-ldap: ldap_client - Add event --- diff --git a/src/lib-ldap/ldap-client.c b/src/lib-ldap/ldap-client.c index bbae9106aa..7642f53881 100644 --- a/src/lib-ldap/ldap-client.c +++ b/src/lib-ldap/ldap-client.c @@ -10,6 +10,7 @@ #define LDAP_CONN_POOL_MAX_CONNECTIONS UINT_MAX struct ldap_client { + struct event *event; struct ldap_connection_list *list; }; @@ -24,6 +25,7 @@ int ldap_client_init(const struct ldap_client_settings *set, ldap_conn_pool = ldap_connection_pool_init(LDAP_CONN_POOL_MAX_CONNECTIONS); client = i_new(struct ldap_client, 1); + client->event = event_create(set->event_parent); if (ldap_connection_pool_get(ldap_conn_pool, client, set, &client->list, error_r) < 0) { i_free(client); @@ -40,9 +42,15 @@ void ldap_client_deinit(struct ldap_client **_client) *_client = NULL; ldap_connection_pool_unref(ldap_conn_pool, &client->list); + event_unref(&client->event); i_free(client); } +struct event *ldap_client_get_event(struct ldap_client *client) +{ + return client->event; +} + void ldap_client_switch_ioloop(struct ldap_client *client) { ldap_connection_switch_ioloop(client->list->conn); diff --git a/src/lib-ldap/ldap-connection.c b/src/lib-ldap/ldap-connection.c index aa820d02f2..bdc8d1600b 100644 --- a/src/lib-ldap/ldap-connection.c +++ b/src/lib-ldap/ldap-connection.c @@ -170,7 +170,7 @@ int ldap_connection_init(struct ldap_client *client, pool_t pool = pool_alloconly_create("ldap connection", 1024); struct ldap_connection *conn = p_new(pool, struct ldap_connection, 1); conn->pool = pool; - conn->event = event_create(set->event_parent); + conn->event = event_create(ldap_client_get_event(client)); conn->client = client; conn->set = *set; diff --git a/src/lib-ldap/ldap-private.h b/src/lib-ldap/ldap-private.h index ec40f1c550..5c3a4abaa2 100644 --- a/src/lib-ldap/ldap-private.h +++ b/src/lib-ldap/ldap-private.h @@ -120,6 +120,7 @@ void ldap_connection_compare_start(struct ldap_connection *conn, void ldap_connection_kill(struct ldap_connection *conn); int ldap_connection_check(struct ldap_connection *conn); void ldap_connection_queue_request(struct ldap_connection *conn, struct ldap_op_queue_entry *req); +struct event *ldap_client_get_event(struct ldap_client *client); int ldap_entry_init(struct ldap_entry *obj, struct ldap_result *result, LDAPMessage *message);