From 65e3cb612368eecc31574ea77bd818b5e1db3dd5 Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Sat, 24 Oct 2026 13:23:23 +0200 Subject: Keep accesslists for five more minutes after they have been removed not after they have been created --- ot_accesslist.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ot_accesslist.c b/ot_accesslist.c index a199fa4..86fb128 100644 --- a/ot_accesslist.c +++ b/ot_accesslist.c @@ -81,7 +81,7 @@ static ot_accesslist *accesslist_make(ot_accesslist *next, size_t size) { if (accesslist_new) { accesslist_new->list = size ? malloc(sizeof(ot_hash) * size) : NULL; accesslist_new->size = size; - accesslist_new->base = g_now_minutes; + accesslist_new->base = 0; accesslist_new->next = next; if (size && !accesslist_new->list) { free(accesslist_new); @@ -192,6 +192,10 @@ static void accesslist_readfile(void) { /* Now exchange the accesslist vector in the least race condition prone way */ pthread_mutex_lock(&g_accesslist_mutex); + + /* Mark old accesslist as "needs to live another five minutes" */ + if (g_accesslist) + g_accesslist->base = g_now_minutes; accesslist_new->next = g_accesslist; g_accesslist = accesslist_new; /* Only now set a new list */ -- cgit v1.3