From: Willy Tarreau Date: Mon, 26 Nov 2012 15:44:48 +0000 (+0100) Subject: BUG/MAJOR: stats: correctly check for a possible divide error when showing compressio... X-Git-Tag: v1.5-dev15~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=78bbeb4a994c6a567b567954d608a6a05f942721;p=thirdparty%2Fhaproxy.git BUG/MAJOR: stats: correctly check for a possible divide error when showing compression ratios Commit 5730c68b changed to display compression ratios based on 2xx responses, but we should then check that there are such responses instead of checking for requests. The risk is a divide error if there are some requests but no 2xx yet (eg: redirect). --- diff --git a/src/dumpstats.c b/src/dumpstats.c index 7cc5911aa8..f2849efceb 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -2477,7 +2477,7 @@ static int stats_dump_proxy(struct stream_interface *si, struct proxy *px, struc chunk_appendf(&trash, " other=%lld,", px->fe_counters.p.http.rsp[0]); chunk_appendf(&trash, " compressed=%lld (%d%%)", px->fe_counters.p.http.comp_rsp, - px->fe_counters.p.http.cum_req ? + px->fe_counters.p.http.rsp[2] ? (int)(100*px->fe_counters.p.http.comp_rsp/px->fe_counters.p.http.rsp[2]) : 0); chunk_appendf(&trash, " intercepted=%lld\"", px->fe_counters.intercepted_req); } @@ -3218,7 +3218,7 @@ static int stats_dump_proxy(struct stream_interface *si, struct proxy *px, struc chunk_appendf(&trash, " other=%lld ", px->be_counters.p.http.rsp[0]); chunk_appendf(&trash, " compressed=%lld (%d%%)\"", px->be_counters.p.http.comp_rsp, - px->be_counters.p.http.cum_req ? + px->be_counters.p.http.rsp[2] ? (int)(100*px->be_counters.p.http.comp_rsp/px->be_counters.p.http.rsp[2]) : 0); }