diff --git a/cmd/cli/dns_proxy.go b/cmd/cli/dns_proxy.go index d2065ef..44582c5 100644 --- a/cmd/cli/dns_proxy.go +++ b/cmd/cli/dns_proxy.go @@ -545,9 +545,11 @@ func (p *prog) proxy(ctx context.Context, req *proxyRequest) *proxyResponse { return nil } // if we have an answer, we should reset the failure count + // we dont use reset here since we dont want to prevent failure counts from being incremented if answer != nil { p.um.mu.Lock() p.um.failureReq[upstreams[n]] = 0 + p.um.down[upstreams[n]] = false p.um.mu.Unlock() } return answer diff --git a/cmd/cli/upstream_monitor.go b/cmd/cli/upstream_monitor.go index acc02bb..6e19e38 100644 --- a/cmd/cli/upstream_monitor.go +++ b/cmd/cli/upstream_monitor.go @@ -85,8 +85,6 @@ func (um *upstreamMonitor) increaseFailureCount(upstream string) { if failedCount >= maxFailureRequest { um.down[upstream] = true mainLog.Load().Warn().Msgf("upstream %q marked as down immediately (failure count: %d)", upstream, failedCount) - } else { - um.down[upstream] = false } }