]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: MASTER_SERVICE_FLAG_USE_SSL_SETTINGS no longer initialized SSL server
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 20 Apr 2020 15:07:58 +0000 (18:07 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 24 Apr 2020 08:51:37 +0000 (08:51 +0000)
src/lib-master/master-service-private.h
src/lib-master/master-service.c
src/lib-master/master-service.h

index 33dba32aa2de97b36b48bbde5bb1627878085472..e8229515178052b02db3c1bc60533ad28455a240 100644 (file)
@@ -82,6 +82,7 @@ struct master_service {
        bool call_avail_overflow:1;
        bool config_path_changed_with_param:1;
        bool want_ssl_settings:1;
+       bool want_ssl_server:1;
        bool ssl_ctx_initialized:1;
        bool config_path_from_master:1;
        bool log_initialized:1;
index d7b1f4c6293e64041bc06a86fcd63e3c61c75ed3..b111b9bf7721d49530691e00ee0698e2e8870eb6 100644 (file)
@@ -191,9 +191,10 @@ static void master_service_init_socket_listeners(struct master_service *service)
                        }
                }
        }
-       service->want_ssl_settings = have_ssl_sockets ||
-               (service->flags & (MASTER_SERVICE_FLAG_USE_SSL_SETTINGS |
-                                  MASTER_SERVICE_FLAG_HAVE_STARTTLS)) != 0;
+       service->want_ssl_server = have_ssl_sockets ||
+               (service->flags & MASTER_SERVICE_FLAG_HAVE_STARTTLS) != 0;
+       service->want_ssl_settings = service->want_ssl_server ||
+               (service->flags & MASTER_SERVICE_FLAG_USE_SSL_SETTINGS) != 0;
 }
 
 struct master_service *
@@ -640,7 +641,7 @@ void master_service_init_finish(struct master_service *service)
                lib_signals_set_handler(SIGQUIT, 0, sig_close_listeners, service);
        }
        master_service_io_listeners_add(service);
-       if (service->want_ssl_settings &&
+       if (service->want_ssl_server &&
            (service->flags & MASTER_SERVICE_FLAG_NO_SSL_INIT) == 0)
                master_service_ssl_ctx_init(service);
 
index acbeaf4504d508f765b6dd1464dd9d4a0183a6e5..5a81b8b36e1f3d22663e11e5237b670abb4197a8 100644 (file)
@@ -27,9 +27,10 @@ enum master_service_flags {
        /* Show number of connections in process title
           (only if verbose_proctitle setting is enabled) */
        MASTER_SERVICE_FLAG_UPDATE_PROCTITLE    = 0x100,
-       /* SSL settings are always looked up when we have ssl listeners.
-          This flag enables looking up SSL settings even without ssl
-          listeners (i.e. the service does STARTTLS). */
+       /* Always read SSL settings into memory, even if there are no ssl
+          listeners or _HAVE_STARTTLS flag hasn't been set. This is mainly
+          intended to be used when SSL client settings are wanted to be
+          accessed via lib-master. */
        MASTER_SERVICE_FLAG_USE_SSL_SETTINGS    = 0x200,
        /* Don't initialize SSL context automatically. */
        MASTER_SERVICE_FLAG_NO_SSL_INIT         = 0x400,