Mercurial > dovecot > core-2.2
changeset 20286:4d926d1e9164
director: Fixed ignoring an obsolete up/down change while host is desynced.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sun, 05 Jun 2016 14:54:05 +0300 |
parents | f8b7ef642ad3 |
children | 16fb9651df56 |
files | src/director/director-connection.c |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-connection.c Sun Jun 05 04:29:00 2016 +0300 +++ b/src/director/director-connection.c Sun Jun 05 14:54:05 2016 +0300 @@ -927,6 +927,11 @@ str_printfa(str, "director(%s): Host %s is being updated before previous update had finished (", conn->name, net_ip2addr(&host->ip)); + if (host->down != down && + host->last_updown_change > last_updown_change) { + /* our host has a newer change. preserve it. */ + down = host->down; + } if (host->down != down) { if (host->down) str_append(str, "down -> up"); @@ -942,10 +947,6 @@ str_append(str, ") - "); vhost_count = I_MIN(vhost_count, host->vhost_count); - if (host->down != down) { - if (host->last_updown_change <= last_updown_change) - down = host->last_updown_change; - } last_updown_change = I_MAX(last_updown_change, host->last_updown_change); str_printfa(str, "setting to state=%s vhosts=%u",