From cb6d06bb54de1ce3f32a62f27a16065d24c20f33 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 1 Jul 2021 23:00:22 +0100 Subject: [PATCH] Rationalise SERV_MARK use. --- src/cache.c | 8 -------- src/domain-match.c | 4 ++++ src/network.c | 3 +++ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/cache.c b/src/cache.c index 6d98556..4a62560 100644 --- a/src/cache.c +++ b/src/cache.c @@ -1642,10 +1642,6 @@ int cache_make_stat(struct txt_record *t) t->txt = (unsigned char *)buff; t->len = p - buff; - /* clear our workspace, these bits are assumed zero elsewhere. */ - for (serv = daemon->servers; serv; serv = serv->next) - serv->flags &= ~SERV_MARK; - return 1; } @@ -1706,10 +1702,6 @@ void dump_cache(time_t now) my_syslog(LOG_INFO, _("server %s#%d: queries sent %u, retried or failed %u"), daemon->addrbuff, port, queries, failed_queries); } - /* other code assumes these are left as zeros. */ - for (serv = daemon->servers; serv; serv = serv->next) - serv->flags &= ~SERV_MARK; - if (option_bool(OPT_DEBUG) || option_bool(OPT_LOG)) { struct crec *cache ; diff --git a/src/domain-match.c b/src/domain-match.c index f11edc2..b3280b8 100644 --- a/src/domain-match.c +++ b/src/domain-match.c @@ -529,10 +529,14 @@ void mark_servers(int flag) for (serv = daemon->servers; serv; serv = serv->next) if (serv->flags & flag) serv->flags |= SERV_MARK; + else + serv->flags &= ~SERV_MARK; for (serv = daemon->local_domains; serv; serv = serv->next) if (serv->flags & flag) serv->flags |= SERV_MARK; + else + serv->flags &= ~SERV_MARK; } void cleanup_servers(void) diff --git a/src/network.c b/src/network.c index 2d77b47..3ef71b9 100644 --- a/src/network.c +++ b/src/network.c @@ -1506,6 +1506,9 @@ void check_servers(int no_loop_check) if (!no_loop_check) loop_send_probes(); #endif + + /* clear all marks. */ + mark_servers(0); /* interface may be new since startup */ if (!option_bool(OPT_NOWILD)) -- 2.20.1