]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Find director's own IP earlier in init.
authorTimo Sirainen <tss@iki.fi>
Tue, 17 Jan 2012 13:44:26 +0000 (15:44 +0200)
committerTimo Sirainen <tss@iki.fi>
Tue, 17 Jan 2012 13:44:26 +0000 (15:44 +0200)
src/director/director.c
src/director/director.h
src/director/main.c

index 6d39ce03e1b5d2ec2eda3cae2752b27e2dfcc5ab..7babb73cf65e759945db2231a6efa7678e4094f9 100644 (file)
@@ -48,7 +48,7 @@ static void director_find_self_ip(struct director *dir)
        i_fatal("director_servers doesn't list ourself");
 }
 
-static void director_find_self(struct director *dir)
+void director_find_self(struct director *dir)
 {
        if (dir->self_host != NULL)
                return;
@@ -126,7 +126,6 @@ void director_connect(struct director *dir)
        struct director_host *const *hosts;
        unsigned int i, count, self_idx;
 
-       director_find_self(dir);
        self_idx = director_find_self_idx(dir);
 
        /* try to connect to first working server on our right side.
index f737f725b0cfb909fe7f3cd5967857db4929ab26..c6a712e78bb7f40455c56f5b929bd36e50b0e932 100644 (file)
@@ -66,6 +66,7 @@ director_init(const struct director_settings *set,
              const struct ip_addr *listen_ip, unsigned int listen_port,
              director_state_change_callback_t *callback);
 void director_deinit(struct director **dir);
+void director_find_self(struct director *dir);
 
 /* Start connecting to other directors */
 void director_connect(struct director *dir);
index d5908d4a2fd63e76ef3c0062166226a2a9dcf13a..8ef145363dbe1bf625336e6ccabe7c06cce23fb5 100644 (file)
@@ -150,6 +150,7 @@ static void main_preinit(void)
        director = director_init(set, &listen_ip, listen_port,
                                 director_state_changed);
        director_host_add_from_string(director, set->director_servers);
+       director_find_self(director);
        if (mail_hosts_parse_and_add(director->mail_hosts,
                                     set->director_mail_servers) < 0)
                i_fatal("Invalid value for director_mail_servers setting");