]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login: Don't fail at startup by trying to load SSL plugin.
authorTimo Sirainen <tss@iki.fi>
Mon, 25 Feb 2013 18:04:10 +0000 (20:04 +0200)
committerTimo Sirainen <tss@iki.fi>
Mon, 25 Feb 2013 18:04:10 +0000 (20:04 +0200)
src/lib-master/master-service.c
src/lib-master/master-service.h
src/login-common/main.c

index 2220f2a98463ddeabebf2c08555bd134daa4255f..e118c4f1b93c5a84adbe2529fb10b5ab062470d9 100644 (file)
@@ -442,7 +442,8 @@ void master_service_init_finish(struct master_service *service)
                                                  master_status_error, service);
        }
        master_service_io_listeners_add(service);
-       if (service->want_ssl_settings)
+       if (service->want_ssl_settings &&
+           (service->flags & MASTER_SERVICE_FLAG_NO_SSL_INIT) == 0)
                master_service_ssl_ctx_init(service);
 
        if ((service->flags & MASTER_SERVICE_FLAG_STD_CLIENT) != 0) {
index 37b38e9dd8114671a1b84afc447a1d8f99e762e6..1201322a7fe486564ad9fd2c579d7d28fe170186 100644 (file)
@@ -26,7 +26,9 @@ enum master_service_flags {
        /* 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). */
-       MASTER_SERVICE_FLAG_USE_SSL_SETTINGS    = 0x200
+       MASTER_SERVICE_FLAG_USE_SSL_SETTINGS    = 0x200,
+       /* Don't initialize SSL context automatically. */
+       MASTER_SERVICE_FLAG_NO_SSL_INIT         = 0x400
 };
 
 struct master_service_connection {
index 643fb406e3e6f59c3c83eca2c8565c5766a9c174..0c959491882b8a03a458868be0270fb13c30ed40 100644 (file)
@@ -365,7 +365,8 @@ int login_binary_run(const struct login_binary *binary,
        enum master_service_flags service_flags =
                MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN |
                MASTER_SERVICE_FLAG_TRACK_LOGIN_STATE |
-               MASTER_SERVICE_FLAG_USE_SSL_SETTINGS;
+               MASTER_SERVICE_FLAG_USE_SSL_SETTINGS |
+               MASTER_SERVICE_FLAG_NO_SSL_INIT;
        pool_t set_pool;
        bool allow_core_dumps = FALSE;
        const char *login_socket;