dovecot-2.2: lib-master: Check ssl_cert/ssl_key only when runnin...

dovecot at dovecot.org dovecot at dovecot.org
Sat Jul 28 21:55:29 EEST 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/476be9198559
changeset: 14731:476be9198559
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Jul 28 21:55:14 2012 +0300
description:
lib-master: Check ssl_cert/ssl_key only when running in config/doveconf.
Also if Dovecot isn't built with SSL, default to ssl=no

diffstat:

 src/lib-master/master-service-ssl-settings.c |  10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diffs (35 lines):

diff -r 73ce16df6b16 -r 476be9198559 src/lib-master/master-service-ssl-settings.c
--- a/src/lib-master/master-service-ssl-settings.c	Sat Jul 28 18:03:25 2012 +0300
+++ b/src/lib-master/master-service-ssl-settings.c	Sat Jul 28 21:55:14 2012 +0300
@@ -32,7 +32,11 @@
 };
 
 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 = "",
@@ -74,6 +78,11 @@
 				   set->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
+	   ssl_cert/ssl_key/etc validity here except in doveconf, because it
+	   usually is just an extra annoyance. */
+#ifdef CONFIG
 	if (*set->ssl_cert == '\0') {
 		*error_r = "ssl enabled, but ssl_cert not set";
 		return FALSE;
@@ -82,6 +91,7 @@
 		*error_r = "ssl enabled, but ssl_key not set";
 		return FALSE;
 	}
+#endif
 	if (set->ssl_verify_client_cert && *set->ssl_ca == '\0') {
 		*error_r = "ssl_verify_client_cert set, but ssl_ca not";
 		return FALSE;


More information about the dovecot-cvs mailing list