From 8fa52f4e0e73239ba84754c9b9568ed4571bc4af Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 9 Jan 2012 11:50:03 +0100 Subject: [PATCH 138/139] 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. --- src/dumpstats.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/src/dumpstats.c b/src/dumpstats.c index f4d5c33..12252c9 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; } -- 1.7.2.3