From 231f8c9f6911eb59777818bcc2e56854ebfd8b99 Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Sat, 24 Oct 2026 15:37:29 +0200 Subject: Stamp all accesslists, even the temporary ones --- ot_accesslist.c | 13 ++++++++++--- ot_accesslist.h | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ot_accesslist.c b/ot_accesslist.c index 86fb128..17ed73e 100644 --- a/ot_accesslist.c +++ b/ot_accesslist.c @@ -202,10 +202,14 @@ static void accesslist_readfile(void) { #ifdef WANT_DYNAMIC_ACCESSLIST /* If we have dynamic accesslists, reloading a new one will always void the add/delete lists. Insert empty ones at the list head */ - if (g_accesslist_add && (accesslist_new = accesslist_make(g_accesslist_add, 0)) != NULL) + if (g_accesslist_add && (accesslist_new = accesslist_make(g_accesslist_add, 0)) != NULL) { + g_accesslist_add->base = g_now_minutes; g_accesslist_add = accesslist_new; - if (g_accesslist_delete && (accesslist_new = accesslist_make(g_accesslist_delete, 0)) != NULL) + } + if (g_accesslist_delete && (accesslist_new = accesslist_make(g_accesslist_delete, 0)) != NULL) { + g_accesslist_delete->base = g_now_minutes; g_accesslist_delete = accesslist_new; + } #endif accesslist_clean(g_accesslist); @@ -213,7 +217,7 @@ static void accesslist_readfile(void) { pthread_mutex_unlock(&g_accesslist_mutex); } -int accesslist_hashisvalid(ot_hash hash) { +int accesslist_hashisvalid(const ot_hash hash) { /* Get working copy of current access list */ ot_accesslist *accesslist = g_accesslist; #ifdef WANT_DYNAMIC_ACCESSLIST @@ -320,6 +324,7 @@ static void *accesslist_adddel_worker(char *fifoname, ot_accesslist *_Atomic if (accesslist_new) { memcpy(accesslist_new->list, (*removing_from)->list, sizeof(ot_hash) * off); memcpy(accesslist_new->list + off, (*removing_from)->list + off + 1, (*removing_from)->size - off - 1); + (*removing_from)->base = g_now_minutes; *removing_from = accesslist_new; } } @@ -330,6 +335,7 @@ static void *accesslist_adddel_worker(char *fifoname, ot_accesslist *_Atomic ot_accesslist *accesslist_new = accesslist_make(NULL, 1); if (accesslist_new) { memcpy(accesslist_new->list, info_hash, sizeof(ot_hash)); + (*adding_to)->base = g_now_minutes; *adding_to = accesslist_new; } } else { @@ -344,6 +350,7 @@ static void *accesslist_adddel_worker(char *fifoname, ot_accesslist *_Atomic memcpy(accesslist_new->list, (*adding_to)->list, sizeof(ot_hash) * off); memcpy(accesslist_new->list + off, info_hash, sizeof(info_hash)); memcpy(accesslist_new->list + off + 1, (*adding_to)->list + off, (*adding_to)->size - off); + (*adding_to)->base = g_now_minutes; *adding_to = accesslist_new; } } diff --git a/ot_accesslist.h b/ot_accesslist.h index b3e979d..30aaebd 100644 --- a/ot_accesslist.h +++ b/ot_accesslist.h @@ -16,7 +16,7 @@ #define WANT_ACCESSLIST void accesslist_init(void); void accesslist_deinit(void); -int accesslist_hashisvalid(ot_hash hash); +int accesslist_hashisvalid(const ot_hash hash); void accesslist_cleanup(void); /* Scan buf for up to capacity info_hashes in hexadecimal notation, one per -- cgit v1.3