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
This commit is contained in:
Maycon Santos 2024-03-15 18:57:18 +01:00 committed by GitHub
parent fc7c1e397f
commit 416f04c27a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 5 deletions

View File

@ -278,9 +278,15 @@ func (s *DefaultServer) SearchDomains() []string {
// ProbeAvailability tests each upstream group's servers for availability // ProbeAvailability tests each upstream group's servers for availability
// and deactivates the group if no server responds // and deactivates the group if no server responds
func (s *DefaultServer) ProbeAvailability() { func (s *DefaultServer) ProbeAvailability() {
var wg sync.WaitGroup
for _, mux := range s.dnsMuxMap { 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 { func (s *DefaultServer) applyConfiguration(update nbdns.Config) error {

View File

@ -698,15 +698,16 @@ func (e *Engine) updateNetworkMap(networkMap *mgmProto.NetworkMap) error {
log.Errorf("failed to update dns server, err: %v", err) 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 { if e.acl != nil {
e.acl.ApplyFiltering(networkMap) e.acl.ApplyFiltering(networkMap)
} }
e.networkSerial = serial 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 return nil
} }