From: Willy Tarreau Date: Thu, 7 Jan 2016 11:59:57 +0000 (+0100) Subject: MINOR: stats: do not use srv->admin & STATS_ADMF_MAINT in HTML dumps X-Git-Tag: v1.7-dev2~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=02bc6c22442d3159188bfd330e434a91ba6f768f;p=thirdparty%2Fhaproxy.git MINOR: stats: do not use srv->admin & STATS_ADMF_MAINT in HTML dumps We don't want the HTML dump to rely on the server admin bits. We already have this piece of information in the status field. --- diff --git a/src/dumpstats.c b/src/dumpstats.c index d9ab2fd5af..7cb423d8b5 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -3784,7 +3784,7 @@ static int stats_dump_sv_stats(struct stream_interface *si, struct proxy *px, in [SRV_STATS_STATE_NO_CHECK] = "no check", }; - if (sv->admin & SRV_ADMF_MAINT) + if (memcmp(field_str(stats, ST_F_STATUS), "MAINT", 5) == 0) chunk_appendf(&trash, ""); else chunk_appendf(&trash, @@ -3934,9 +3934,8 @@ static int stats_dump_sv_stats(struct stream_interface *si, struct proxy *px, in */ - if (sv->admin & SRV_ADMF_MAINT) { - chunk_appendf(&trash, "%s ", human_time(stats[ST_F_LASTCHG].u.u32, 1)); - chunk_appendf(&trash, "MAINT"); + if (memcmp(field_str(stats, ST_F_STATUS), "MAINT", 5) == 0) { + chunk_appendf(&trash, "%s MAINT", human_time(stats[ST_F_LASTCHG].u.u32, 1)); } else if ((ref->agent.state & CHK_ST_ENABLED) && !(sv->agent.health) && (ref->state == SRV_ST_STOPPED)) { chunk_appendf(&trash, "%s ", human_time(stats[ST_F_LASTCHG].u.u32, 1)); @@ -4030,8 +4029,8 @@ static int stats_dump_sv_stats(struct stream_interface *si, struct proxy *px, in ref->observe ? "/Health Analyses" : "", (long long)stats[ST_F_CHKDOWN].u.u64, human_time(stats[ST_F_DOWNTIME].u.u32, 1)); } - else if (!(sv->admin & SRV_ADMF_FMAINT) && field_format(stats, ST_F_TRACKED) == FF_STR) { - /* tracking a server */ + else if (strcmp(field_str(stats, ST_F_STATUS), "MAINT") != 0 && field_format(stats, ST_F_TRACKED) == FF_STR) { + /* tracking a server (hence inherited maint would appear as "MAINT (via...)" */ chunk_appendf(&trash, "via %s", field_str(stats, ST_F_TRACKED), field_str(stats, ST_F_TRACKED));