From 20ad851bce90b09a9a5a28152978cfac1427f135 Mon Sep 17 00:00:00 2001 From: Marco Bettini Date: Mon, 14 Oct 2024 08:45:28 +0000 Subject: [PATCH] lib-ldap: ldap_client_settings - remove ssl_set --- src/lib-ldap/ldap-client.c | 6 ++++-- src/lib-ldap/ldap-settings.c | 19 +++++-------------- src/lib-ldap/ldap-settings.h | 6 +++--- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/lib-ldap/ldap-client.c b/src/lib-ldap/ldap-client.c index 619eaf3996..537fd716e4 100644 --- a/src/lib-ldap/ldap-client.c +++ b/src/lib-ldap/ldap-client.c @@ -21,9 +21,10 @@ int ldap_client_init_auto(struct event *event, struct ldap_client **client_r, const char **error_r) { const struct ldap_client_settings *set; + const struct ssl_settings *ssl_set; struct ldap_client *client; - if (ldap_client_settings_get(event, &set, error_r) < 0) + if (ldap_client_settings_get(event, &set, &ssl_set, error_r) < 0) return -1; if (ldap_conn_pool == NULL) @@ -31,9 +32,10 @@ int ldap_client_init_auto(struct event *event, struct ldap_client **client_r, client = i_new(struct ldap_client, 1); client->event = event_create(event); - int ret = ldap_connection_pool_get(ldap_conn_pool, client, set, set->ssl_set, + int ret = ldap_connection_pool_get(ldap_conn_pool, client, set, ssl_set, &client->list, error_r); settings_free(set); + settings_free(ssl_set); if (ret < 0) { i_free(client); return -1; diff --git a/src/lib-ldap/ldap-settings.c b/src/lib-ldap/ldap-settings.c index 6aefe48e92..7906b51172 100644 --- a/src/lib-ldap/ldap-settings.c +++ b/src/lib-ldap/ldap-settings.c @@ -67,32 +67,23 @@ ldap_client_settings_postcheck(struct ldap_client_settings *set, const char **er return 0; } -static void bind_pool(pool_t to, pool_t from) -{ - pool_add_external_ref(to, from); - pool_t tmp = from; - pool_unref(&tmp); -} - int ldap_client_settings_get(struct event *event, const struct ldap_client_settings **set_r, + const struct ssl_settings **ssl_set_r, const char **error_r) { struct ldap_client_settings *set = NULL; + const struct ssl_settings *ssl_set = NULL; if (settings_get(event, &ldap_client_setting_parser_info, 0, &set, error_r) < 0 || + settings_get(event, &ssl_setting_parser_info, 0, &ssl_set, error_r) < 0 || ldap_client_settings_postcheck(set, error_r) < 0) { settings_free(set); + settings_free(ssl_set); return -1; } - if (settings_get(event, &ssl_setting_parser_info, 0, &set->ssl_set, error_r) < 0) { - settings_free(set); - return -1; - } - - bind_pool(set->pool, set->ssl_set->pool); - *set_r = set; + *ssl_set_r = ssl_set; *error_r = NULL; return 0; } diff --git a/src/lib-ldap/ldap-settings.h b/src/lib-ldap/ldap-settings.h index 9725bfe0c9..9f21122535 100644 --- a/src/lib-ldap/ldap-settings.h +++ b/src/lib-ldap/ldap-settings.h @@ -1,6 +1,8 @@ #ifndef LDAP_SETTINGS_H #define LDAP_SETTINGS_H +struct ssl_settings; + struct ldap_client_settings { pool_t pool; @@ -13,15 +15,13 @@ struct ldap_client_settings { unsigned int debug_level; bool require_ssl; bool starttls; - - struct event *event_parent; - const struct ssl_settings *ssl_set; }; extern const struct setting_parser_info ldap_client_setting_parser_info; int ldap_client_settings_get(struct event *event, const struct ldap_client_settings **set_r, + const struct ssl_settings **ssl_set_r, const char **error_r); #endif -- 2.47.3