From 0029b7ff081cddd6216de57a3daad0ffd6529ccb Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 17 Dec 2024 15:46:28 +0200 Subject: [PATCH] lib-ssl-iostream: Add ssl_client and ssl_server named filters --- src/lib-ssl-iostream/ssl-settings.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/lib-ssl-iostream/ssl-settings.c b/src/lib-ssl-iostream/ssl-settings.c index c4356618e9..9a15c2b0a2 100644 --- a/src/lib-ssl-iostream/ssl-settings.c +++ b/src/lib-ssl-iostream/ssl-settings.c @@ -15,6 +15,9 @@ static bool ssl_server_settings_check(void *_set, pool_t pool, const char **error_r); static const struct setting_define ssl_setting_defines[] = { + { .type = SET_FILTER_NAME, .key = "ssl_client", }, + { .type = SET_FILTER_NAME, .key = "ssl_server", }, + DEF(FILE, ssl_client_ca_file), DEF(STR, ssl_client_ca_dir), DEF(FILE, ssl_client_cert_file), @@ -169,7 +172,12 @@ int ssl_client_settings_get(struct event *event, const struct ssl_settings **set_r, const char **error_r) { - return settings_get(event, &ssl_setting_parser_info, 0, set_r, error_r); + event = event_create(event); + event_set_ptr(event, SETTINGS_EVENT_FILTER_NAME, "ssl_client"); + int ret = settings_get(event, &ssl_setting_parser_info, 0, + set_r, error_r); + event_unref(&event); + return ret; } int ssl_server_settings_get(struct event *event, @@ -177,15 +185,18 @@ int ssl_server_settings_get(struct event *event, const struct ssl_server_settings **server_set_r, const char **error_r) { - if (settings_get(event, &ssl_setting_parser_info, 0, - set_r, error_r) < 0) - return -1; - if (settings_get(event, &ssl_server_setting_parser_info, 0, - server_set_r, error_r) < 0) { - settings_free(*set_r); - return -1; + event = event_create(event); + event_set_ptr(event, SETTINGS_EVENT_FILTER_NAME, "ssl_server"); + int ret = settings_get(event, &ssl_setting_parser_info, 0, + set_r, error_r); + if (ret == 0) { + ret = settings_get(event, &ssl_server_setting_parser_info, 0, + server_set_r, error_r); + if (ret < 0) + settings_free(*set_r); } - return 0; + event_unref(&event); + return ret; } static struct ssl_iostream_settings * -- 2.47.3