}
if (update) {
- mail_host_set_down(host, down, last_updown_change);
- mail_host_set_vhost_count(host, vhost_count);
+ const char *log_prefix = t_strdup_printf("director(%s): ",
+ conn->name);
+ mail_host_set_down(host, down, last_updown_change, log_prefix);
+ mail_host_set_vhost_count(host, vhost_count, log_prefix);
director_update_host(conn->dir, src_host, dir_host, host);
} else {
dir_debug("Ignoring host %s update vhost_count=%u "
return 1;
}
if (vhost_count != UINT_MAX)
- mail_host_set_vhost_count(host, vhost_count);
+ mail_host_set_vhost_count(host, vhost_count, "doveadm: ");
/* 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. */
"host is already being updated - try again later\n");
return 1;
} else {
- mail_host_set_down(host, down, ioloop_time);
+ mail_host_set_down(host, down, ioloop_time, "doveadm: ");
director_update_host(conn->dir, conn->dir->self_host,
NULL, host);
}
host->list->vhosts_unsorted = TRUE;
}
-void mail_host_set_down(struct mail_host *host, bool down, time_t timestamp)
+void mail_host_set_down(struct mail_host *host, bool down,
+ time_t timestamp, const char *log_prefix)
{
if (host->down != down) {
+ const char *updown = down ? "down" : "up";
+ i_info("%sHost %s changed %s "
+ "(vhost_count=%u last_updown_change=%ld)",
+ log_prefix, net_ip2addr(&host->ip), updown,
+ host->vhost_count, (long)host->last_updown_change);
+
host->down = down;
host->last_updown_change = timestamp;
host->list->vhosts_unsorted = TRUE;
}
}
-void mail_host_set_vhost_count(struct mail_host *host, unsigned int vhost_count)
+void mail_host_set_vhost_count(struct mail_host *host, unsigned int vhost_count,
+ const char *log_prefix)
{
+ i_info("%sHost %s vhost count changed from %u to %u",
+ log_prefix, net_ip2addr(&host->ip),
+ host->vhost_count, vhost_count);
+
host->vhost_count = vhost_count;
host->list->vhosts_unsorted = TRUE;
}
const char *hosts_string);
const char *mail_host_get_tag(const struct mail_host *host);
void mail_host_set_tag(struct mail_host *host, const char *tag_name);
-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_set_down(struct mail_host *host, bool down, time_t timestamp,
+ const char *log_prefix);
+void mail_host_set_vhost_count(struct mail_host *host, unsigned int vhost_count,
+ const char *log_prefix);
void mail_host_remove(struct mail_host *host);
void mail_hosts_set_synced(struct mail_host_list *list);