From 5f80f8bbc5ae051e5ef7964bd8704ee0d6d20806 Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Wed, 19 Apr 2023 18:22:21 +0200 Subject: [PATCH] MINOR: server: central update for server counters on state change Based on "BUG/MINOR: server: don't miss server stats update on server state transitions", we're also taking advantage of the new centralized logic to update down_trans server counter directly from there instead of multiple places. --- src/server.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/server.c b/src/server.c index 65f24d1..457a429 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; } -- 1.7.10.4