]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Log vhost count changes and HOST-UP/DOWN
authorMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Thu, 30 Mar 2017 12:53:59 +0000 (15:53 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 30 Mar 2017 17:56:19 +0000 (20:56 +0300)
src/director/director-connection.c
src/director/doveadm-connection.c
src/director/mail-host.c
src/director/mail-host.h

index 62ce4333de8b57baa0e0e489ae163af2811e1148..6b3c8b18618a6aa47cb8fdfa0f24f2e5dffdac29 100644 (file)
@@ -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 "
index 092cd6b33a85842183b63ccaebce5fac98af8d48..8baa4528cc8f5db3bc7b5d13973903853d91e13e 100644 (file)
@@ -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. */
@@ -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);
        }
index 8e9b654bf529405a6a6a1e40eda59bb01cc35bae..30c43fa70b5dc0d36834bcf4fc10ef10f58a40f6 100644 (file)
@@ -361,17 +361,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;
 }
index f29cf46a5dc8f019168c7855b3e880bdc8446934..45eae698ddfc98805e3b3e61f264786f4c654c7e 100644 (file)
@@ -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);