master-service-ssl-settings.c revision 5a580c3a38ced62d4bcc95b8ac7c4f2935b5d294
/* Copyright (c) 2013 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "settings-parser.h"
#include "master-service-private.h"
#include "master-service-ssl-settings.h"
#include <stddef.h>
static bool
static const struct setting_define master_service_ssl_setting_defines[] = {
};
static const struct master_service_ssl_settings master_service_ssl_default_settings = {
#ifdef HAVE_SSL
.ssl = "yes:no:required",
#else
.ssl = "no:yes:required",
#endif
.ssl_ca = "",
.ssl_cert = "",
.ssl_key = "",
.ssl_key_password = "",
.ssl_cipher_list = "ALL:!LOW:!SSLv2:!EXP:!aNULL",
.ssl_protocols = "!SSLv2",
.ssl_cert_username_field = "commonName",
.ssl_crypto_device = "",
.ssl_require_crl = TRUE,
.verbose_ssl = FALSE
};
const struct setting_parser_info master_service_ssl_setting_parser_info = {
.module_name = "ssl",
.struct_size = sizeof(struct master_service_ssl_settings),
};
/* <settings checks> */
static bool
const char **error_r)
{
/* disabled */
return TRUE;
}
#ifndef HAVE_SSL
return FALSE;
#else
/* we get called from many different tools, possibly with -O parameter,
and few of those tools care about SSL settings. so don't check
usually is just an extra annoyance. */
#ifdef CONFIG
*error_r = "ssl enabled, but ssl_cert not set";
return FALSE;
}
*error_r = "ssl enabled, but ssl_key not set";
return FALSE;
}
#endif
*error_r = "ssl_verify_client_cert set, but ssl_ca not";
return FALSE;
}
return TRUE;
#endif
}
/* </settings checks> */
const struct master_service_ssl_settings *
{
void **sets;
return sets[1];
}