diff --git a/src/server.c b/src/server.c index 65f24d1ae..457a42956 100644 --- a/src/server.c +++ b/src/server.c @@ -5335,7 +5335,6 @@ static void srv_update_status(struct server *s) free_trash_chunk(tmptrash); tmptrash = NULL; } - s->counters.down_trans++; } else if ((s->cur_state != SRV_ST_STOPPING) && (s->next_state == SRV_ST_STOPPING)) { if (s->proxy->lbprm.set_server_status_down) @@ -5503,7 +5502,6 @@ static void srv_update_status(struct server *s) free_trash_chunk(tmptrash); tmptrash = NULL; } - s->counters.down_trans++; } } else if ((s->cur_admin & SRV_ADMF_MAINT) && !(s->next_admin & SRV_ADMF_MAINT)) { @@ -5788,6 +5786,10 @@ static void srv_update_status(struct server *s) if (s->last_change < now.tv_sec) // ignore negative times s->down_time += now.tv_sec - s->last_change; } + else if (s->cur_state == SRV_ST_STOPPED) { + /* server was up and is currently down */ + s->counters.down_trans++; + } s->last_change = now.tv_sec; }