]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-ssl-iostream: Add ssl_client/server_settings_get()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 18 Dec 2024 10:02:53 +0000 (12:02 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:40:01 +0000 (10:40 +0200)
src/lib-ssl-iostream/ssl-settings.c
src/lib-ssl-iostream/ssl-settings.h

index 3c7de1a6181a6a93b1c458109832d17a840eeeaa..c4356618e935332327932c20d05f4346ed374ca1 100644 (file)
@@ -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,
 }
 /* </settings checks> */
 
+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)
 {
index 22024887824fbfa00415e497d408377396c54c57..be54a94f8563cf525462d81796c8acf6eed37255 100644 (file)
@@ -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);