]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Code cleanup - access host->tag via mail_host_get_tag()
authorTimo Sirainen <tss@iki.fi>
Mon, 23 Nov 2015 17:41:38 +0000 (19:41 +0200)
committerTimo Sirainen <tss@iki.fi>
Mon, 23 Nov 2015 17:41:38 +0000 (19:41 +0200)
In preparation for the following changes.

src/director/director-connection.c
src/director/director.c
src/director/doveadm-connection.c
src/director/mail-host.c
src/director/mail-host.h

index be91688bc0d3a6b7021e2ae06c6849fa5bab5fee..fedbad8872d7907c2fc6b04360673b5b4bd9e4b1 100644 (file)
@@ -863,7 +863,7 @@ director_cmd_host_int(struct director_connection *conn, const char *const *args,
        struct director_host *src_host = conn->host;
        struct mail_host *host;
        struct ip_addr ip;
-       const char *tag = "", *hostname = NULL;
+       const char *tag = "", *host_tag, *hostname = NULL;
        unsigned int arg_count, vhost_count;
        bool update, down = FALSE;
        time_t last_updown_change = 0;
@@ -904,10 +904,11 @@ director_cmd_host_int(struct director_connection *conn, const char *const *args,
                        host->down != down ||
                        host->last_updown_change != last_updown_change;
 
-               if (strcmp(tag, host->tag) != 0) {
+               host_tag = mail_host_get_tag(host);
+               if (strcmp(tag, host_tag) != 0) {
                        i_error("director(%s): Host %s changed tag from '%s' to '%s'",
                                conn->name, net_ip2addr(&host->ip),
-                               host->tag, tag);
+                               host_tag, tag);
                        mail_host_set_tag(host, tag);
                        update = TRUE;
                }
@@ -1694,12 +1695,13 @@ director_connection_send_hosts(struct director_connection *conn, string_t *str)
        str_printfa(str, "HOST-HAND-START\t%u\n", conn->dir->ring_handshaked);
        array_foreach(mail_hosts_get(conn->dir->mail_hosts), hostp) {
                struct mail_host *host = *hostp;
+               const char *host_tag = mail_host_get_tag(host);
 
                str_printfa(str, "HOST\t%s\t%u",
                            net_ip2addr(&host->ip), host->vhost_count);
-               if (host->tag[0] != '\0' || send_updowns) {
+               if (host_tag[0] != '\0' || send_updowns) {
                        str_append_c(str, '\t');
-                       str_append_tabescaped(str, host->tag);
+                       str_append_tabescaped(str, host_tag);
                }
                if (send_updowns) {
                        str_printfa(str, "\t%c%ld\t", host->down ? 'D' : 'U',
index 45605e24854156423f0a8673fc7c87e4f44a2170..e931b5bda8bbbe056f8067779b18f8420d365008 100644 (file)
@@ -523,6 +523,7 @@ director_send_host(struct director *dir, struct director_host *src,
                   struct director_host *orig_src,
                   struct mail_host *host)
 {
+       const char *host_tag = mail_host_get_tag(host);
        string_t *str;
 
        if (orig_src == NULL) {
@@ -537,11 +538,11 @@ director_send_host(struct director *dir, struct director_host *src,
                    net_ip2addr(&host->ip), host->vhost_count);
        if (dir->ring_min_version >= DIRECTOR_VERSION_TAGS) {
                str_append_c(str, '\t');
-               str_append_tabescaped(str, host->tag);
-       } else if (host->tag[0] != '\0' &&
+               str_append_tabescaped(str, host_tag);
+       } else if (host_tag[0] != '\0' &&
                   dir->ring_min_version < DIRECTOR_VERSION_TAGS) {
                i_error("Ring has directors that don't support tags - removing host %s with tag '%s'",
-                       net_ip2addr(&host->ip), host->tag);
+                       net_ip2addr(&host->ip), host_tag);
                director_remove_host(dir, NULL, NULL, host);
                return;
        }
index d79bdacb26762d887c33e513265c9a8c22eba8f1..412b6d2207fa6a2a5e9ec890139f2f2983bb1ab2 100644 (file)
@@ -50,7 +50,7 @@ static void doveadm_cmd_host_list(struct doveadm_connection *conn)
                str_printfa(str, "%s\t%u\t%u\t",
                            net_ip2addr(&(*hostp)->ip), (*hostp)->vhost_count,
                            (*hostp)->user_count);
-               str_append_tabescaped(str, (*hostp)->tag);
+               str_append_tabescaped(str, mail_host_get_tag(*hostp));
                str_printfa(str, "\t%c\t%ld", (*hostp)->down ? 'D' : 'U',
                            (long)(*hostp)->last_updown_change);
                str_append_c(str, '\n');
@@ -422,7 +422,8 @@ director_host_reset_users(struct director *dir, struct director_host *src,
                if (user->host != host)
                        continue;
                new_host = mail_host_get_by_hash(dir->mail_hosts,
-                                                user->username_hash, host->tag);
+                                                user->username_hash,
+                                                mail_host_get_tag(host));
                if (new_host != host) T_BEGIN {
                        director_move_user(dir, src, NULL,
                                           user->username_hash, new_host);
index ff6aae01d4b28adfff4f68d681b99b4941e79b83..48e3427741f2d55664d2cfaa5ce77fdb98940fa1 100644 (file)
@@ -298,6 +298,11 @@ int mail_hosts_parse_and_add(struct mail_host_list *list,
        return ret;
 }
 
+const char *mail_host_get_tag(struct mail_host *host)
+{
+       return host->tag;
+}
+
 void mail_host_set_tag(struct mail_host *host, const char *tag)
 {
        i_assert(tag != NULL);
index 0820e85ebb053b5b166eea840da300a4e764721c..3de64327c3065033b57b8f5ac91d3e70a849b9c1 100644 (file)
@@ -38,6 +38,7 @@ mail_host_get_by_hash(struct mail_host_list *list, unsigned int hash,
 
 int mail_hosts_parse_and_add(struct mail_host_list *list,
                             const char *hosts_string);
+const char *mail_host_get_tag(struct mail_host *host);
 void mail_host_set_tag(struct mail_host *host, const char *tag);
 void mail_host_set_down(struct mail_host *host, bool down, time_t timestamp);
 void mail_host_set_vhost_count(struct mail_host *host,