]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
master: If ssl=no, skip inet_listeners with ssl=yes.
authorTimo Sirainen <tss@iki.fi>
Mon, 31 Aug 2009 20:14:56 +0000 (16:14 -0400)
committerTimo Sirainen <tss@iki.fi>
Mon, 31 Aug 2009 20:14:56 +0000 (16:14 -0400)
--HG--
branch : HEAD

src/master/master-settings.c
src/master/master-settings.h
src/master/service.c

index b075a758a076d74989a97dd61e4cf7d90fdcfbe5..ed99bc93516e5f2fe490eca2e639536bfb8c9804 100644 (file)
@@ -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,
 
index 081c5937d66a561ffa4967fe2c13ad2daad8c7b9..3a8ac42bce0281709290050737f67b7bafc3d050 100644 (file)
@@ -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;
 
index a26ce66c959fc86f36559320b87a19d4dbf2db1a..e8ac70e836df1636fa8a800ac1b8e48a8e431a81 100644 (file)
@@ -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)