login-settings.c revision a64adf62fa33f2463a86f990217b0c9078531a40
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen/* Copyright (c) 2005-2008 Dovecot authors, see the included COPYING file */
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen { type, #name, offsetof(struct login_settings, name), NULL }
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainenstatic struct setting_define login_setting_defines[] = {
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainenstatic struct login_settings login_default_settings = {
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen MEMBER(login_log_format_elements) "user=<%u> method=%m rip=%r lip=%l %c",
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen MEMBER(ssl_cert_file) SSLDIR"/certs/dovecot.pem",
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen MEMBER(ssl_key_file) SSLDIR"/private/dovecot.pem",
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen MEMBER(ssl_parameters_file) "ssl-parameters.dat",
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainenstruct setting_parser_info login_setting_parser_info = {
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen MEMBER(struct_size) sizeof(struct login_settings)
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainenstatic int ssl_settings_check(struct login_settings *set ATTR_UNUSED)
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen i_error("SSL support not compiled in but ssl_disable=no");
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen i_error("ssl_cert_file: access(%s) failed: %m",
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen i_error("ssl_key_file: access(%s) failed: %m",
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen if (set->ssl_verify_client_cert && *set->ssl_ca_file == '\0') {
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen i_error("ssl_verify_client_cert set, but ssl_ca_file not");
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainenstatic void login_settings_check(struct login_settings *set)
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen /* disabled */
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen } else if (strcmp(set->ssl, "required") == 0) {
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen i_fatal("Couldn't initialize ssl with ssl=required");
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen i_fatal("Unknown ssl setting value: %s", set->ssl);
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen t_strsplit(set->login_log_format_elements, " ");
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen if (set->ssl_require_client_cert || set->ssl_username_from_cert) {
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen /* if we require valid cert, make sure we also ask for it */
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen i_fatal("login_max_connections must be at least 1");
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainenstruct login_settings *login_settings_read(void)
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen settings_pool = pool_alloconly_create("settings pool", 512);