]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master, global: Remove MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sat, 17 Dec 2022 19:26:26 +0000 (21:26 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 27 Jan 2023 13:01:47 +0000 (13:01 +0000)
The config is now always kept open.

15 files changed:
src/doveadm/doveadm.c
src/doveadm/main.c
src/imap-urlauth/imap-urlauth-worker.c
src/imap-urlauth/imap-urlauth.c
src/imap/main.c
src/indexer/indexer-worker.c
src/lib-master/master-service-settings.c
src/lib-master/master-service-settings.h
src/lib-master/master-service.c
src/lib-master/master-service.h
src/lmtp/main.c
src/login-common/main.c
src/plugins/quota/quota-status.c
src/pop3/main.c
src/submission/main.c

index c691f2a67c94934df89e833799a1eab702f9963e..9bc9fc88dea5f51bf2c9cfd86151d82db3671501 100644 (file)
@@ -259,7 +259,6 @@ int main(int argc, char *argv[])
 {
        enum master_service_flags service_flags =
                MASTER_SERVICE_FLAG_STANDALONE |
-               MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN |
                MASTER_SERVICE_FLAG_NO_SSL_INIT |
                MASTER_SERVICE_FLAG_NO_INIT_DATASTACK_FRAME;
        const char *cmd_name;
index e819fface7079955b1bf8621e10f394d93ff77bb..5cde83f14aead7a67a0049d7c36d4b9a791094ce 100644 (file)
@@ -100,7 +100,6 @@ static void main_deinit(void)
 int main(int argc, char *argv[])
 {
        enum master_service_flags service_flags =
-               MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN |
                MASTER_SERVICE_FLAG_HAVE_STARTTLS;
        int c;
 
index 1f42f5c7304784b1d6e0eb0ddb8ae3d8e3fcad1f..97c6eb70e5e7a314e92944f2256b63c68e76f8f8 100644 (file)
@@ -949,8 +949,6 @@ int main(int argc, char *argv[])
        if (IS_STANDALONE()) {
                service_flags |= MASTER_SERVICE_FLAG_STANDALONE |
                        MASTER_SERVICE_FLAG_STD_CLIENT;
-       } else {
-               service_flags |= MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
        }
 
        master_service = master_service_init("imap-urlauth-worker", service_flags,
index f2d689479c32fc6d26b02ad9975a059174f86ec2..f10f4d1cefe4202484715b3ecb950718ad3f2e29 100644 (file)
@@ -235,8 +235,6 @@ int main(int argc, char *argv[])
        if (IS_STANDALONE()) {
                service_flags |= MASTER_SERVICE_FLAG_STANDALONE |
                        MASTER_SERVICE_FLAG_STD_CLIENT;
-       } else {
-               service_flags |= MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
        }
 
        master_service = master_service_init("imap-urlauth", service_flags,
index 52b3f2fb36e84242d129fd4c2bb82b3674f4ab78..135632ea669497563f4ea8a26e3c4503008ba88c 100644 (file)
@@ -504,8 +504,6 @@ int main(int argc, char *argv[])
        if (IS_STANDALONE()) {
                service_flags |= MASTER_SERVICE_FLAG_STANDALONE |
                        MASTER_SERVICE_FLAG_STD_CLIENT;
-       } else {
-               service_flags |= MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
        }
 
        master_service = master_service_init("imap", service_flags,
index 43c5e87cbdfbe38e1d73990f5a72909dff078493..af2efb3dc4158b7d61744ee7b1aa4d465b180e2a 100644 (file)
@@ -43,8 +43,7 @@ static void drop_privileges(void)
 
 int main(int argc, char *argv[])
 {
-       enum master_service_flags service_flags =
-               MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
+       enum master_service_flags service_flags = 0;
        enum mail_storage_service_flags storage_service_flags =
                MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP |
                MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP |
index 4694073a701b7ffd673fce81fae12d041a601087..2ffd4d9f5c366d5c2ed548ac77f99f396eabc0ad 100644 (file)
@@ -279,14 +279,6 @@ master_service_open_config(struct master_service *service,
        *path_r = path = input->config_path != NULL ? input->config_path :
                master_service_get_config_path(service);
 
-       if (service->config_fd != -1 && input->config_path == NULL &&
-           !service->config_path_changed_with_param) {
-               /* use the already opened config socket */
-               fd = service->config_fd;
-               service->config_fd = -1;
-               return fd;
-       }
-
        if (!service->config_path_from_master &&
            !service->config_path_changed_with_param &&
            !input->always_exec &&
@@ -389,32 +381,6 @@ master_service_apply_config_overrides(struct master_service *service,
        return 0;
 }
 
-void master_service_config_socket_try_open(struct master_service *service)
-{
-       struct master_service_settings_input input;
-       const char *path, *error;
-       int fd;
-
-       /* we'll get here before command line parameters have been parsed,
-          so -O, -c and -i parameters haven't been handled yet at this point.
-          this means we could end up opening config socket connection
-          unnecessarily, but this isn't a problem. we'll just have to
-          ignore it later on. (unfortunately there isn't a master_service_*()
-          call where this function would be better called.) */
-       if (getenv("DOVECONF_ENV") != NULL ||
-           getenv(DOVECOT_CONFIG_FD_ENV) != NULL ||
-           (service->flags & MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS) != 0)
-               return;
-
-       i_zero(&input);
-       input.never_exec = TRUE;
-       fd = master_service_open_config(service, &input, &path, &error);
-       if (fd != -1) {
-               service->config_fd = fd;
-               fd_close_on_exec(service->config_fd, TRUE);
-       }
-}
-
 static void
 filter_string_parse_protocol(const char *filter_string,
                             ARRAY_TYPE(const_string) *protocols)
index 74fd0e2812f6d73517b093fe0a66e5305b8a155a..867c55d3ccbcb61042334559ff62356dc4fc7570 100644 (file)
@@ -65,9 +65,6 @@ struct master_service_settings_output {
 
 extern const struct setting_parser_info master_service_setting_parser_info;
 
-/* Try to open the config socket if it's going to be needed later by
-   master_service_settings_read*() */
-void master_service_config_socket_try_open(struct master_service *service);
 int master_service_settings_read(struct master_service *service,
                                 const struct master_service_settings_input *input,
                                 struct master_service_settings_output *output_r,
index 926dd8f6c123a56a2385c95487460b6d51e9124c..fcee505310d9e3b23794205bcb98824f2158181c 100644 (file)
@@ -615,12 +615,6 @@ master_service_init(const char *name, enum master_service_flags flags,
                master_service_set_client_limit(service, 1);
                master_service_set_service_count(service, 1);
        }
-       if ((flags & MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN) != 0) {
-               /* since we're going to keep the config socket open anyway,
-                  open it now so we can read settings even after privileges
-                  are dropped. */
-               master_service_config_socket_try_open(service);
-       }
        if ((flags & MASTER_SERVICE_FLAG_DONT_SEND_STATS) == 0) {
                /* Initialize stats-client early so it can see all events. */
                value = getenv(DOVECOT_STATS_WRITER_SOCKET_PATH);
index 4d94bd12447aa7f521237fbe8082222acdf9e8d4..7bb0a97c3d765efcd2b7565f484ba28151d6f715 100644 (file)
@@ -17,10 +17,6 @@ enum master_service_flags {
        /* Log to configured log file instead of stderr. By default when
           _FLAG_STANDALONE is set, logging is done to stderr. */
        MASTER_SERVICE_FLAG_DONT_LOG_TO_STDERR  = 0x04,
-       /* Service is going to do multiple configuration lookups,
-          keep the connection to config service open. Also opens the config
-          socket before dropping privileges. */
-       MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN    = 0x08,
        /* Don't read settings, but use whatever is in environment */
        MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS  = 0x10,
        /* Use MASTER_LOGIN_NOTIFY_FD to track login overflow state */
index f24eb92a7fa35808dfe9eb3240c688c8c20d71db..ee4066c4cf54fd788f4a647e51e70b9deb32831b 100644 (file)
@@ -132,8 +132,6 @@ int main(int argc, char *argv[])
        if (IS_STANDALONE()) {
                service_flags |= MASTER_SERVICE_FLAG_STANDALONE |
                        MASTER_SERVICE_FLAG_STD_CLIENT;
-       } else {
-               service_flags |= MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN  ;
        }
 
        master_service = master_service_init("lmtp", service_flags,
index baf00c33a0adff7e0c909e9ec39b8b43af1735b4..80376a226ddbd331bbe626917361dec910dbaf81 100644 (file)
@@ -461,7 +461,6 @@ int login_binary_run(struct login_binary *binary,
                     int argc, char *argv[])
 {
        enum master_service_flags service_flags =
-               MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN |
                MASTER_SERVICE_FLAG_TRACK_LOGIN_STATE |
                MASTER_SERVICE_FLAG_HAVE_STARTTLS |
                MASTER_SERVICE_FLAG_NO_SSL_INIT;
index 03db5595fb6076513de66462e3aa261b72b53eea..7c8d4edd381813437c6b87a2035d5f7f5fda85df 100644 (file)
@@ -319,8 +319,7 @@ static void main_deinit(void)
 
 int main(int argc, char *argv[])
 {
-       enum master_service_flags service_flags =
-               MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
+       enum master_service_flags service_flags = 0;
        int c;
 
        protocol = QUOTA_PROTOCOL_UNKNOWN;
index 79ec6bb2e7c7bb31dfaf309024baca9cfd03f2c2..fd100457fbad8167d8dce70ca212f6b3cd512f77 100644 (file)
@@ -381,8 +381,6 @@ int main(int argc, char *argv[])
        if (IS_STANDALONE()) {
                service_flags |= MASTER_SERVICE_FLAG_STANDALONE |
                        MASTER_SERVICE_FLAG_STD_CLIENT;
-       } else {
-               service_flags |= MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
        }
 
        /*
index 6dadd81a90953262cb8ecbf7eb98fd2867578309..4f519896613cd09c4a211e7130a0c68d94eb3a96 100644 (file)
@@ -364,8 +364,6 @@ int main(int argc, char *argv[])
        if (IS_STANDALONE()) {
                service_flags |= MASTER_SERVICE_FLAG_STANDALONE |
                        MASTER_SERVICE_FLAG_STD_CLIENT;
-       } else {
-               service_flags |= MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
        }
 
        master_service = master_service_init("submission", service_flags,