]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: stats: do not use srv->admin & STATS_ADMF_MAINT in HTML dumps
authorWilly Tarreau <w@1wt.eu>
Thu, 7 Jan 2016 11:59:57 +0000 (12:59 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 11 Mar 2016 16:08:04 +0000 (17:08 +0100)
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.

src/dumpstats.c

index d9ab2fd5afae131ab942d344ba7025dd8213a42d..7cb423d8b5ef58ff099c2a7909e8a964fdefc1d7 100644 (file)
@@ -3784,7 +3784,7 @@ static int stats_dump_sv_stats(struct stream_interface *si, struct proxy *px, in
                        [SRV_STATS_STATE_NO_CHECK]              = "<i>no check</i>",
                };
 
-               if (sv->admin & SRV_ADMF_MAINT)
+               if (memcmp(field_str(stats, ST_F_STATUS), "MAINT", 5) == 0)
                        chunk_appendf(&trash, "<tr class=\"maintain\">");
                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,
                                      "<td class=ac colspan=3><a class=lfsb href=\"#%s\">via %s</a></td>",
                                      field_str(stats, ST_F_TRACKED), field_str(stats, ST_F_TRACKED));