diff src/director/doveadm-connection.c @ 11352:19336bddada2 HEAD

director: Code cleanup - keep mail hosts in a struct rather than in static variables.
author Timo Sirainen <tss@iki.fi>
date Thu, 20 May 2010 12:23:55 +0200
parents c57c1ff9c5f1
children 1bc3d5589c5a
line wrap: on
line diff
--- a/src/director/doveadm-connection.c	Thu May 20 11:46:21 2010 +0200
+++ b/src/director/doveadm-connection.c	Thu May 20 12:23:55 2010 +0200
@@ -43,7 +43,7 @@
 	struct mail_host *const *hostp;
 	string_t *str = t_str_new(1024);
 
-	array_foreach(mail_hosts_get(), hostp) {
+	array_foreach(mail_hosts_get(conn->dir->mail_hosts), hostp) {
 		str_printfa(str, "%s\t%u\t%u\n",
 			    net_ip2addr(&(*hostp)->ip), (*hostp)->vhost_count,
 			    (*hostp)->user_count);
@@ -68,6 +68,7 @@
 static bool
 doveadm_cmd_host_set(struct doveadm_connection *conn, const char *line)
 {
+	struct director *dir = conn->dir;
 	const char *const *args;
 	struct mail_host *host;
 	struct ip_addr ip;
@@ -84,12 +85,12 @@
 		o_stream_send_str(conn->output, "vhost count too large\n");
 		return TRUE;
 	}
-	host = mail_host_lookup(&ip);
+	host = mail_host_lookup(dir->mail_hosts, &ip);
 	if (host == NULL)
-		host = mail_host_add_ip(&ip);
+		host = mail_host_add_ip(dir->mail_hosts, &ip);
 	if (vhost_count != -1U)
-		mail_host_set_vhost_count(host, vhost_count);
-	director_update_host(conn->dir, conn->dir->self_host, host);
+		mail_host_set_vhost_count(dir->mail_hosts, host, vhost_count);
+	director_update_host(dir, dir->self_host, host);
 
 	o_stream_send(conn->output, "OK\n", 3);
 	return TRUE;
@@ -105,7 +106,7 @@
 		i_error("doveadm sent invalid HOST-SET parameters");
 		return FALSE;
 	}
-	host = mail_host_lookup(&ip);
+	host = mail_host_lookup(conn->dir->mail_hosts, &ip);
 	if (host == NULL)
 		o_stream_send_str(conn->output, "NOTFOUND\n");
 	else {