]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Moved all i_fatal()s to preinit stage.
authorTimo Sirainen <tss@iki.fi>
Sat, 19 Nov 2011 21:41:50 +0000 (23:41 +0200)
committerTimo Sirainen <tss@iki.fi>
Sat, 19 Nov 2011 21:41:50 +0000 (23:41 +0200)
This avoids a wrongly configured director process from rapidly respawning.

src/director/main.c

index 0f3cc33f49642cf41b0f1d3f0dccbd1b9440e23a..af7a3db866de880fef92a398ba8885858c941401 100644 (file)
@@ -140,12 +140,15 @@ static void director_state_changed(struct director *dir)
                timeout_remove(&dir->to_request);
 }
 
-static void main_init(void)
+static void main_preinit(void)
 {
        const struct director_settings *set;
        struct ip_addr listen_ip;
        unsigned int listen_port;
 
+       restrict_access_by_env(NULL, FALSE);
+       restrict_access_allow_coredumps(TRUE);
+
        set = master_service_settings_get_others(master_service)[0];
 
        auth_socket_path = i_strconcat(set->base_dir,
@@ -215,11 +218,8 @@ int main(int argc, char *argv[])
 
        master_service_init_log(master_service, "director: ");
 
-       restrict_access_by_env(NULL, FALSE);
-       restrict_access_allow_coredumps(TRUE);
+       main_preinit();
        master_service_init_finish(master_service);
-
-       main_init();
        director->test_port = test_port;
        director->debug = debug;
        director_connect(director);