From: Timo Sirainen Date: Wed, 18 Dec 2024 10:02:53 +0000 (+0200) Subject: lib-ssl-iostream: Add ssl_client/server_settings_get() X-Git-Tag: 2.4.0~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f90ed4bf244ebb94fe4870008093ccbe1fc31168;p=thirdparty%2Fdovecot%2Fcore.git lib-ssl-iostream: Add ssl_client/server_settings_get() --- diff --git a/src/lib-ssl-iostream/ssl-settings.c b/src/lib-ssl-iostream/ssl-settings.c index 3c7de1a618..c4356618e9 100644 --- a/src/lib-ssl-iostream/ssl-settings.c +++ b/src/lib-ssl-iostream/ssl-settings.c @@ -1,6 +1,7 @@ /* Copyright (c) 2013-2018 Dovecot authors, see the included COPYING file */ #include "lib.h" +#include "settings.h" #include "settings-parser.h" #include "iostream-ssl.h" @@ -164,6 +165,29 @@ ssl_server_settings_check(void *_set, pool_t pool ATTR_UNUSED, } /* */ +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); +} + +int ssl_server_settings_get(struct event *event, + const struct ssl_settings **set_r, + 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; + } + return 0; +} + static struct ssl_iostream_settings * ssl_common_settings_to_iostream_set(const struct ssl_settings *ssl_set) { diff --git a/src/lib-ssl-iostream/ssl-settings.h b/src/lib-ssl-iostream/ssl-settings.h index 2202488782..be54a94f85 100644 --- a/src/lib-ssl-iostream/ssl-settings.h +++ b/src/lib-ssl-iostream/ssl-settings.h @@ -51,6 +51,14 @@ extern const struct setting_parser_info ssl_server_setting_parser_info; extern const struct ssl_settings ssl_default_settings; +int ssl_client_settings_get(struct event *event, + const struct ssl_settings **set_r, + const char **error_r); +int ssl_server_settings_get(struct event *event, + const struct ssl_settings **set_r, + const struct ssl_server_settings **server_set_r, + const char **error_r); + void ssl_client_settings_to_iostream_set( const struct ssl_settings *ssl_set, const struct ssl_iostream_settings **set_r);