From e8f6338c5d62a0cc5417eaa73b5a063eed8cca16 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 13 Jul 2010 15:20:24 +0200 Subject: [PATCH] [BUG] stick-table: correctly refresh expiration timers The store operation did not correctly refresh the expiration timer on the stick entry. It did so on the temporary one instead. --- src/session.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/session.c b/src/session.c index 7c1e4761d..556fffefc 100644 --- a/src/session.c +++ b/src/session.c @@ -963,7 +963,7 @@ int process_sticking_rules(struct session *s, struct buffer *req, int an_bit) } } } - ts->expire = tick_add(now_ms, MS_TO_TICKS(rule->table.t->expire)); + stktable_touch(rule->table.t, ts); } } if (rule->flags & STK_IS_STORE) { @@ -1058,7 +1058,7 @@ int process_store_rules(struct session *s, struct buffer *rep, int an_bit) ts = stktable_lookup(s->store[i].table, s->store[i].ts); if (ts) { /* the entry already existed, we can free ours */ - stktable_touch(s->store[i].table, s->store[i].ts); + stktable_touch(s->store[i].table, ts); stksess_free(s->store[i].table, s->store[i].ts); } else