From: Timo Sirainen Date: Mon, 31 Aug 2009 20:14:56 +0000 (-0400) Subject: master: If ssl=no, skip inet_listeners with ssl=yes. X-Git-Tag: 2.0.alpha1~211 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dd7c84708bd7817bc9bd755a2a1d9d8b742d2d6b;p=thirdparty%2Fdovecot%2Fcore.git master: If ssl=no, skip inet_listeners with ssl=yes. --HG-- branch : HEAD --- diff --git a/src/master/master-settings.c b/src/master/master-settings.c index b075a758a0..ed99bc9351 100644 --- a/src/master/master-settings.c +++ b/src/master/master-settings.c @@ -190,6 +190,7 @@ static struct setting_define master_setting_defines[] = { DEF(SET_STR, base_dir), DEF(SET_STR, libexec_dir), DEF(SET_STR, protocols), + DEF(SET_ENUM, ssl), DEF(SET_UINT, default_process_limit), DEF(SET_UINT, default_client_limit), @@ -211,6 +212,7 @@ static struct master_settings master_default_settings = { MEMBER(base_dir) PKG_RUNDIR, MEMBER(libexec_dir) PKG_LIBEXECDIR, MEMBER(protocols) "imap pop3 lmtp", + MEMBER(ssl) "yes:no:required", MEMBER(default_process_limit) 100, MEMBER(default_client_limit) 1000, diff --git a/src/master/master-settings.h b/src/master/master-settings.h index 081c5937d6..3a8ac42bce 100644 --- a/src/master/master-settings.h +++ b/src/master/master-settings.h @@ -49,6 +49,7 @@ struct master_settings { const char *base_dir; const char *libexec_dir; const char *protocols; + const char *ssl; unsigned int default_process_limit; unsigned int default_client_limit; diff --git a/src/master/service.c b/src/master/service.c index a26ce66c95..e8ac70e836 100644 --- a/src/master/service.c +++ b/src/master/service.c @@ -128,9 +128,13 @@ service_create_inet_listeners(struct service *service, { static struct service_listener *l; const char *const *tmp; + bool ssl_disabled = strcmp(service->set->master_set->ssl, "no") == 0; tmp = t_strsplit_spaces(set->address, ", "); for (; *tmp != NULL; tmp++) { + if (set->ssl && ssl_disabled) + continue; + l = service_create_one_inet_listener(service, set, *tmp, error_r); if (l == NULL)