From dd0fd7011b750e34c595936b6c95759ccb77f786 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Fri, 18 Sep 2015 09:31:58 +0200 Subject: [PATCH] htable: more checks of updateexpire when item is updated --- modules/htable/ht_api.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/htable/ht_api.c b/modules/htable/ht_api.c index 1a7737605b0..4e272cceb0d 100644 --- a/modules/htable/ht_api.c +++ b/modules/htable/ht_api.c @@ -460,7 +460,10 @@ int ht_set_cell(ht_t *ht, str *name, int type, int_str *val, int mode) } cell->next = it->next; cell->prev = it->prev; - cell->expire = now + ht->htexpire; + if(ht->updateexpire) + cell->expire = now + ht->htexpire; + else + cell->expire = it->expire; if(it->prev) it->prev->next = cell; else @@ -489,7 +492,10 @@ int ht_set_cell(ht_t *ht, str *name, int type, int_str *val, int mode) if(mode) ht_slot_unlock(ht, idx); return -1; } - cell->expire = now + ht->htexpire; + if(ht->updateexpire) + cell->expire = now + ht->htexpire; + else + cell->expire = it->expire; cell->next = it->next; cell->prev = it->prev; if(it->prev) @@ -649,7 +655,8 @@ ht_cell_t* ht_cell_value_add(ht_t *ht, str *name, int val, int mode, return NULL; } else { it->value.n += val; - it->expire = now + ht->htexpire; + if(ht->updateexpire) + it->expire = now + ht->htexpire; if(old!=NULL) { if(old->msize>=it->msize)