Skip to content

Commit

Permalink
doveadm: Use master service SSL settings
Browse files Browse the repository at this point in the history
  • Loading branch information
cmouse committed Jan 23, 2019
1 parent 9554882 commit aeb4c84
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 8 deletions.
17 changes: 13 additions & 4 deletions src/doveadm/doveadm-settings.c
Expand Up @@ -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);
Expand Down Expand Up @@ -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),
Expand Down Expand Up @@ -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 = "",
Expand Down Expand Up @@ -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);
}
5 changes: 3 additions & 2 deletions src/doveadm/doveadm-settings.h
Expand Up @@ -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;
Expand All @@ -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
6 changes: 5 additions & 1 deletion src/doveadm/doveadm.c
Expand Up @@ -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"
Expand Down Expand Up @@ -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
};
Expand All @@ -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());

Expand All @@ -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;
Expand Down
4 changes: 3 additions & 1 deletion src/doveadm/main.c
Expand Up @@ -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"
Expand Down Expand Up @@ -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 =
Expand Down Expand Up @@ -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
};
Expand Down

0 comments on commit aeb4c84

Please sign in to comment.