From 416f04c27a10309f70f1f376a0e8db0ed57f1aad Mon Sep 17 00:00:00 2001 From: Maycon Santos Date: Fri, 15 Mar 2024 18:57:18 +0100 Subject: [PATCH] Unblock ACL apply filtering because of dns probes (#1711) moved the e.dnsServer.ProbeAvailability() to run after ACL apply filtering run the probes in parallel --- client/internal/dns/server.go | 8 +++++++- client/internal/engine.go | 9 +++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/client/internal/dns/server.go b/client/internal/dns/server.go index dff44f01d..b9608b6f2 100644 --- a/client/internal/dns/server.go +++ b/client/internal/dns/server.go @@ -278,9 +278,15 @@ func (s *DefaultServer) SearchDomains() []string { // ProbeAvailability tests each upstream group's servers for availability // and deactivates the group if no server responds func (s *DefaultServer) ProbeAvailability() { + var wg sync.WaitGroup for _, mux := range s.dnsMuxMap { - mux.probeAvailability() + wg.Add(1) + go func(mux handlerWithStop) { + defer wg.Done() + mux.probeAvailability() + }(mux) } + wg.Wait() } func (s *DefaultServer) applyConfiguration(update nbdns.Config) error { diff --git a/client/internal/engine.go b/client/internal/engine.go index 9e52cea44..78d26f0b8 100644 --- a/client/internal/engine.go +++ b/client/internal/engine.go @@ -698,15 +698,16 @@ func (e *Engine) updateNetworkMap(networkMap *mgmProto.NetworkMap) error { log.Errorf("failed to update dns server, err: %v", err) } - // Test received (upstream) servers for availability right away instead of upon usage. - // If no server of a server group responds this will disable the respective handler and retry later. - e.dnsServer.ProbeAvailability() - if e.acl != nil { e.acl.ApplyFiltering(networkMap) } + e.networkSerial = serial + // Test received (upstream) servers for availability right away instead of upon usage. + // If no server of a server group responds this will disable the respective handler and retry later. + e.dnsServer.ProbeAvailability() + return nil }