Skip to content

Commit

Permalink
director: Log vhost count changes and HOST-UP/DOWN
Browse files Browse the repository at this point in the history
  • Loading branch information
mrannanj committed Mar 30, 2017
1 parent 939f758 commit b3abfd0
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 9 deletions.
6 changes: 4 additions & 2 deletions src/director/director-connection.c
Expand Up @@ -1012,8 +1012,10 @@ director_cmd_host_int(struct director_connection *conn, const char *const *args,
}

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 "
Expand Down
4 changes: 2 additions & 2 deletions src/director/doveadm-connection.c
Expand Up @@ -305,7 +305,7 @@ doveadm_cmd_host_set_or_update(struct doveadm_connection *conn,
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. */
Expand Down Expand Up @@ -352,7 +352,7 @@ doveadm_cmd_host_updown(struct doveadm_connection *conn, bool down,
"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);
}
Expand Down
16 changes: 14 additions & 2 deletions src/director/mail-host.c
Expand Up @@ -356,17 +356,29 @@ void mail_host_set_tag(struct mail_host *host, const char *tag_name)
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;
}
Expand Down
7 changes: 4 additions & 3 deletions src/director/mail-host.h
Expand Up @@ -57,9 +57,10 @@ int mail_hosts_parse_and_add(struct mail_host_list *list,
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);
Expand Down

0 comments on commit b3abfd0

Please sign in to comment.