2017-09-24 19:37:43 +01:00
|
|
|
package proxy
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"sync/atomic"
|
|
|
|
|
|
|
|
|
|
"github.com/coredns/coredns/plugin/pkg/healthcheck"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Default CheckDown functions for use in the proxy plugin.
|
|
|
|
|
var checkDownFunc = func(upstream *staticUpstream) healthcheck.UpstreamHostDownFunc {
|
|
|
|
|
return func(uh *healthcheck.UpstreamHost) bool {
|
|
|
|
|
fails := atomic.LoadInt32(&uh.Fails)
|
|
|
|
|
if fails >= upstream.MaxFails && upstream.MaxFails != 0 {
|
2017-10-15 19:38:39 +02:00
|
|
|
return true
|
2017-09-24 19:37:43 +01:00
|
|
|
}
|
2017-10-15 19:38:39 +02:00
|
|
|
return false
|
2017-09-24 19:37:43 +01:00
|
|
|
}
|
|
|
|
|
}
|