From e0dc41c76b18d5a4fe1fc69452e84eb0bc30eff9 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sat, 23 Nov 2019 22:59:15 +0100 Subject: [PATCH] Also reset per-client domain data on receipt of SIGHUP. The user expects all cache to be cleared on this signal. Signed-off-by: DL6ER --- src/dnsmasq/dnsmasq.c | 2 +- src/dnsmasq_interface.c | 7 +++++-- src/dnsmasq_interface.h | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/dnsmasq/dnsmasq.c b/src/dnsmasq/dnsmasq.c index 2cb2ddc0..869fa561 100644 --- a/src/dnsmasq/dnsmasq.c +++ b/src/dnsmasq/dnsmasq.c @@ -1413,7 +1413,7 @@ static void async_event(int pipe, time_t now) if (daemon->log_file != NULL) log_reopen(daemon->log_file); - FTL_reset_per_client_domain_data(); + FTL_reset_per_client_domain_data(true); break; case EVENT_NEWADDR: diff --git a/src/dnsmasq_interface.c b/src/dnsmasq_interface.c index 37b672b0..ed2708e9 100644 --- a/src/dnsmasq_interface.c +++ b/src/dnsmasq_interface.c @@ -596,6 +596,8 @@ void FTL_dnsmasq_reload(void) // only after having called gravityDB_open() read_regex_from_database(); + FTL_reset_per_client_domain_data(false); + // Print current set of capabilities if requested via debug flag if(config.debug & DEBUG_CAPS) check_capabilities(); @@ -1557,9 +1559,10 @@ static void prepare_blocking_metadata(void) clearSetupVarsArray(); } -void FTL_reset_per_client_domain_data(void) +void FTL_reset_per_client_domain_data(bool sigusr2) { - logg("Received SIGUSR2, resetting domain blocking data"); + if(sigusr2) + logg("Received SIGUSR2, resetting domain blocking data"); for(int domainID = 0; domainID < counters->domains; domainID++) { diff --git a/src/dnsmasq_interface.h b/src/dnsmasq_interface.h index 40822080..249c203e 100644 --- a/src/dnsmasq_interface.h +++ b/src/dnsmasq_interface.h @@ -49,6 +49,6 @@ void _FTL_get_blocking_metadata(struct all_addr **addrp, unsigned int *flags, co void FTL_dnsmasq_reload(void); void FTL_fork_and_bind_sockets(struct passwd *ent_pw); -void FTL_reset_per_client_domain_data(void); +void FTL_reset_per_client_domain_data(bool sigusr2); #endif // DNSMASQ_INTERFACE_H