From: Willy Tarreau Date: Mon, 9 Jan 2012 10:50:03 +0000 (+0100) Subject: BUG/MINOR: cli: correctly remove the whole table on "clear table" X-Git-Tag: v1.5-dev8~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8fa52f4e;p=thirdparty%2Fhaproxy.git BUG/MINOR: cli: correctly remove the whole table on "clear table" Joe Price reported that "clear table xxx" sent on the CLI would only clear the last entry. This is true, some code was missing to remove an entry from within the loop, and only the final condition was able to remove an entry. The fix is obvious. No backport is needed. --- diff --git a/src/dumpstats.c b/src/dumpstats.c index f4d5c33c49..12252c9d86 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -3699,7 +3699,10 @@ static int stats_table_request(struct stream_interface *si, bool show) if (eb) { struct stksess *old = si->applet.ctx.table.entry; si->applet.ctx.table.entry = ebmb_entry(eb, struct stksess, key); - stksess_kill_if_expired(&si->applet.ctx.table.proxy->table, old); + if (show) + stksess_kill_if_expired(&si->applet.ctx.table.proxy->table, old); + else + stksess_kill(&si->applet.ctx.table.proxy->table, old); si->applet.ctx.table.entry->ref_cnt++; break; }