]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Use master service SSL settings
authorAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 15 Nov 2018 12:35:36 +0000 (14:35 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Thu, 21 Mar 2019 08:02:44 +0000 (10:02 +0200)
src/doveadm/doveadm-settings.c
src/doveadm/doveadm-settings.h
src/doveadm/doveadm.c
src/doveadm/main.c

index b3601598c73094172b252eb6d02434207f3def6f..72251ee6483bdb08c96df04452c5489f4585d30d 100644 (file)
@@ -5,6 +5,9 @@
 #include "settings-parser.h"
 #include "service-settings.h"
 #include "mail-storage-settings.h"
+#include "master-service.h"
+#include "master-service-ssl-settings.h"
+#include "iostream-ssl.h"
 #include "doveadm-settings.h"
 
 static bool doveadm_settings_check(void *_set, pool_t pool, const char **error_r);
@@ -67,8 +70,6 @@ static const struct setting_define doveadm_setting_defines[] = {
        DEF(SET_STR, doveadm_allowed_commands),
        DEF(SET_STR, dsync_alt_char),
        DEF(SET_STR, dsync_remote_cmd),
-       DEF(SET_STR, ssl_client_ca_dir),
-       DEF(SET_STR, ssl_client_ca_file),
        DEF(SET_STR, director_username_hash),
        DEF(SET_STR, doveadm_api_key),
        DEF(SET_STR, dsync_features),
@@ -99,8 +100,6 @@ const struct doveadm_settings doveadm_default_settings = {
        .dsync_features = "",
        .dsync_hashed_headers = "Date Message-ID",
        .dsync_commit_msgs_interval = 100,
-       .ssl_client_ca_dir = "",
-       .ssl_client_ca_file = "",
        .director_username_hash = "%Lu",
        .doveadm_api_key = "",
        .doveadm_http_rawlog_dir = "",
@@ -196,3 +195,13 @@ static bool doveadm_settings_check(void *_set, pool_t pool ATTR_UNUSED,
        return TRUE;
 }
 /* </settings checks> */
+
+void doveadm_get_ssl_settings(struct ssl_iostream_settings *set_r, pool_t pool)
+{
+       const struct master_service_ssl_settings *ssl_set =
+               master_service_ssl_settings_get(master_service);
+       i_zero(set_r);
+       master_service_ssl_settings_to_iostream_set(ssl_set, pool,
+                                                   MASTER_SERVICE_SSL_SETTINGS_TYPE_CLIENT,
+                                                   set_r);
+}
index 0ad88ff18f21f41435f18826589dd9e95eea2b69..5a714577a5bfbff5bd7315b054718042d2e51050 100644 (file)
@@ -24,8 +24,6 @@ struct doveadm_settings {
        const char *doveadm_allowed_commands;
        const char *dsync_alt_char;
        const char *dsync_remote_cmd;
-       const char *ssl_client_ca_dir;
-       const char *ssl_client_ca_file;
        const char *director_username_hash;
        const char *doveadm_api_key;
        const char *dsync_features;
@@ -39,5 +37,8 @@ struct doveadm_settings {
 extern const struct setting_parser_info doveadm_setting_parser_info;
 extern struct doveadm_settings *doveadm_settings;
 extern const struct master_service_settings *service_set;
+struct ssl_iostream_settings;
+
+void doveadm_get_ssl_settings(struct ssl_iostream_settings *set_r, pool_t pool);
 
 #endif
index d96d74c5a25fca8b5827c4fb8c6bfe6098628350..c74a6c2d3761e8bb665b8c4bf84d7cf4822046bf 100644 (file)
@@ -10,6 +10,7 @@
 #include "dict.h"
 #include "master-service-private.h"
 #include "master-service-settings.h"
+#include "master-service-ssl-settings.h"
 #include "settings-parser.h"
 #include "doveadm-print-private.h"
 #include "doveadm-dump.h"
@@ -247,6 +248,7 @@ static bool doveadm_has_subcommands(const char *cmd_name)
 static void doveadm_read_settings(void)
 {
        static const struct setting_parser_info *set_roots[] = {
+               &master_service_ssl_setting_parser_info,
                &doveadm_setting_parser_info,
                NULL
        };
@@ -270,7 +272,7 @@ static void doveadm_read_settings(void)
                                   service_set, pool_datastack_create());
        doveadm_verbose_proctitle = service_set->verbose_proctitle;
 
-       set = master_service_settings_get_others(master_service)[0];
+       set = master_service_settings_get_others(master_service)[1];
        doveadm_settings = settings_dup(&doveadm_setting_parser_info, set,
                                        pool_datastack_create());
 
@@ -291,6 +293,8 @@ int main(int argc, char *argv[])
        enum master_service_flags service_flags =
                MASTER_SERVICE_FLAG_STANDALONE |
                MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN |
+               MASTER_SERVICE_FLAG_USE_SSL_SETTINGS |
+               MASTER_SERVICE_FLAG_NO_SSL_INIT |
                MASTER_SERVICE_FLAG_NO_INIT_DATASTACK_FRAME;
        struct doveadm_cmd_context cctx;
        const char *cmd_name;
index d42f46b25ff15ab83edb5e5fd6f7809dd06fe93f..9d353175be6723e27155e3074ee2ea8b9f8ae328 100644 (file)
@@ -5,6 +5,7 @@
 #include "process-title.h"
 #include "master-service.h"
 #include "master-service-settings.h"
+#include "master-service-ssl-settings.h"
 #include "settings-parser.h"
 #include "dict.h"
 #include "doveadm.h"
@@ -72,7 +73,7 @@ static void main_init(void)
 {
        doveadm_server = TRUE;
        doveadm_settings_pool = pool_alloconly_create("doveadm settings", 1024);
-       doveadm_settings = master_service_settings_get_others(master_service)[0];
+       doveadm_settings = master_service_settings_get_others(master_service)[1];
        doveadm_settings = settings_dup(&doveadm_setting_parser_info,
                                        doveadm_settings, doveadm_settings_pool);
        doveadm_verbose_proctitle =
@@ -104,6 +105,7 @@ static void main_deinit(void)
 int main(int argc, char *argv[])
 {
        const struct setting_parser_info *set_roots[] = {
+               &master_service_ssl_setting_parser_info,
                &doveadm_setting_parser_info,
                NULL
        };