Mercurial > dovecot > core-2.2
changeset 19407:39cfca637d60
director: Code cleanup - make most mail_host_*() list parameters unnecessary.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 23 Nov 2015 19:38:31 +0200 |
parents | 63516762a64c |
children | 7e47f561ad49 |
files | src/director/director-connection.c src/director/director.c src/director/doveadm-connection.c src/director/mail-host.c src/director/mail-host.h |
diffstat | 5 files changed, 17 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-connection.c Mon Nov 23 19:35:03 2015 +0200 +++ b/src/director/director-connection.c Mon Nov 23 19:38:31 2015 +0200 @@ -931,10 +931,8 @@ } if (update) { - mail_host_set_down(conn->dir->mail_hosts, host, - down, last_updown_change); - mail_host_set_vhost_count(conn->dir->mail_hosts, - host, vhost_count); + mail_host_set_down(host, down, last_updown_change); + mail_host_set_vhost_count(host, vhost_count); director_update_host(conn->dir, src_host, dir_host, host); } else { dir_debug("Ignoring host %s update vhost_count=%u "
--- a/src/director/director.c Mon Nov 23 19:35:03 2015 +0200 +++ b/src/director/director.c Mon Nov 23 19:38:31 2015 +0200 @@ -601,7 +601,7 @@ } user_directory_remove_host(dir->users, host); - mail_host_remove(dir->mail_hosts, host); + mail_host_remove(host); director_sync(dir); }
--- a/src/director/doveadm-connection.c Mon Nov 23 19:35:03 2015 +0200 +++ b/src/director/doveadm-connection.c Mon Nov 23 19:38:31 2015 +0200 @@ -288,7 +288,7 @@ return TRUE; } if (vhost_count != UINT_MAX) - mail_host_set_vhost_count(dir->mail_hosts, host, vhost_count); + mail_host_set_vhost_count(host, vhost_count); /* NOTE: we don't support changing a tag for an existing host. it needs to be removed first. otherwise it would be a bit ugly to handle. */ @@ -334,8 +334,7 @@ "host is already being updated - try again later\n"); return TRUE; } else { - mail_host_set_down(conn->dir->mail_hosts, host, - down, ioloop_time); + mail_host_set_down(host, down, ioloop_time); director_update_host(conn->dir, conn->dir->self_host, NULL, host); }
--- a/src/director/mail-host.c Mon Nov 23 19:35:03 2015 +0200 +++ b/src/director/mail-host.c Mon Nov 23 19:38:31 2015 +0200 @@ -144,6 +144,7 @@ i_assert(tag != NULL); host = i_new(struct mail_host, 1); + host->list = list; host->vhost_count = VHOST_MULTIPLIER; host->ip = *ip; host->tag = i_strdup(tag); @@ -305,21 +306,19 @@ host->tag = i_strdup(tag); } -void mail_host_set_down(struct mail_host_list *list, - struct mail_host *host, bool down, time_t timestamp) +void mail_host_set_down(struct mail_host *host, bool down, time_t timestamp) { if (host->down != down) { host->down = down; host->last_updown_change = timestamp; - list->hosts_unsorted = TRUE; + host->list->hosts_unsorted = TRUE; } } -void mail_host_set_vhost_count(struct mail_host_list *list, - struct mail_host *host, unsigned int vhost_count) +void mail_host_set_vhost_count(struct mail_host *host, unsigned int vhost_count) { host->vhost_count = vhost_count; - list->hosts_unsorted = TRUE; + host->list->hosts_unsorted = TRUE; } static void mail_host_free(struct mail_host *host) @@ -329,8 +328,9 @@ i_free(host); } -void mail_host_remove(struct mail_host_list *list, struct mail_host *host) +void mail_host_remove(struct mail_host *host) { + struct mail_host_list *list = host->list; struct mail_host *const *hosts; unsigned int i, count;
--- a/src/director/mail-host.h Mon Nov 23 19:35:03 2015 +0200 +++ b/src/director/mail-host.h Mon Nov 23 19:38:31 2015 +0200 @@ -6,6 +6,8 @@ struct mail_host_list; struct mail_host { + struct mail_host_list *list; + unsigned int user_count; unsigned int vhost_count; /* server up/down. down=TRUE has effectively the same result as if @@ -37,12 +39,10 @@ int mail_hosts_parse_and_add(struct mail_host_list *list, const char *hosts_string); void mail_host_set_tag(struct mail_host *host, const char *tag); -void mail_host_set_down(struct mail_host_list *list, - struct mail_host *host, bool down, time_t timestamp); -void mail_host_set_vhost_count(struct mail_host_list *list, - struct mail_host *host, +void mail_host_set_down(struct mail_host *host, bool down, time_t timestamp); +void mail_host_set_vhost_count(struct mail_host *host, unsigned int vhost_count); -void mail_host_remove(struct mail_host_list *list, struct mail_host *host); +void mail_host_remove(struct mail_host *host); void mail_hosts_set_synced(struct mail_host_list *list); unsigned int mail_hosts_hash(struct mail_host_list *list);