aboutsummaryrefslogtreecommitdiff
path: root/plugin/forward/proxy.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/forward/proxy.go')
-rw-r--r--plugin/forward/proxy.go82
1 files changed, 0 insertions, 82 deletions
diff --git a/plugin/forward/proxy.go b/plugin/forward/proxy.go
deleted file mode 100644
index 6a4b5693e..000000000
--- a/plugin/forward/proxy.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package forward
-
-import (
- "crypto/tls"
- "runtime"
- "sync/atomic"
- "time"
-
- "github.com/coredns/coredns/plugin/pkg/up"
-)
-
-// Proxy defines an upstream host.
-type Proxy struct {
- fails uint32
- addr string
-
- transport *Transport
-
- // health checking
- probe *up.Probe
- health HealthChecker
-}
-
-// NewProxy returns a new proxy.
-func NewProxy(addr, trans string) *Proxy {
- p := &Proxy{
- addr: addr,
- fails: 0,
- probe: up.New(),
- transport: newTransport(addr),
- }
- p.health = NewHealthChecker(trans, true, ".")
- runtime.SetFinalizer(p, (*Proxy).finalizer)
- return p
-}
-
-// SetTLSConfig sets the TLS config in the lower p.transport and in the healthchecking client.
-func (p *Proxy) SetTLSConfig(cfg *tls.Config) {
- p.transport.SetTLSConfig(cfg)
- p.health.SetTLSConfig(cfg)
-}
-
-// SetExpire sets the expire duration in the lower p.transport.
-func (p *Proxy) SetExpire(expire time.Duration) { p.transport.SetExpire(expire) }
-
-// Healthcheck kicks of a round of health checks for this proxy.
-func (p *Proxy) Healthcheck() {
- if p.health == nil {
- log.Warning("No healthchecker")
- return
- }
-
- p.probe.Do(func() error {
- return p.health.Check(p)
- })
-}
-
-// Down returns true if this proxy is down, i.e. has *more* fails than maxfails.
-func (p *Proxy) Down(maxfails uint32) bool {
- if maxfails == 0 {
- return false
- }
-
- fails := atomic.LoadUint32(&p.fails)
- return fails > maxfails
-}
-
-// close stops the health checking goroutine.
-func (p *Proxy) stop() { p.probe.Stop() }
-func (p *Proxy) finalizer() { p.transport.Stop() }
-
-// start starts the proxy's healthchecking.
-func (p *Proxy) start(duration time.Duration) {
- p.probe.Start(duration)
- p.transport.Start()
-}
-
-const (
- maxTimeout = 2 * time.Second
-)
-
-var hcInterval = 500 * time.Millisecond