aboutsummaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorGravatar Ruslan Drozhdzh <30860269+rdrozhdzh@users.noreply.github.com> 2018-10-09 22:50:30 +0300
committerGravatar Miek Gieben <miek@miek.nl> 2018-10-09 20:50:30 +0100
commit298b860a97481630ec65698ab0465675bf58b43a (patch)
tree4f93866cde0a2db4d8cc814cc230ba8d6075e11e /plugin
parentcbcc38bcb539ee6e47b1f47d058db96ebcbcdfc1 (diff)
downloadcoredns-298b860a97481630ec65698ab0465675bf58b43a.tar.gz
coredns-298b860a97481630ec65698ab0465675bf58b43a.tar.zst
coredns-298b860a97481630ec65698ab0465675bf58b43a.zip
plugin/forward: fix healthchecker crash (#2165)
Diffstat (limited to 'plugin')
-rw-r--r--plugin/forward/forward.go3
-rw-r--r--plugin/forward/health.go1
-rw-r--r--plugin/forward/proxy.go5
3 files changed, 9 insertions, 0 deletions
diff --git a/plugin/forward/forward.go b/plugin/forward/forward.go
index 2b6a3f705..dfa1aaca1 100644
--- a/plugin/forward/forward.go
+++ b/plugin/forward/forward.go
@@ -12,12 +12,15 @@ import (
"github.com/coredns/coredns/plugin"
"github.com/coredns/coredns/plugin/debug"
+ clog "github.com/coredns/coredns/plugin/pkg/log"
"github.com/coredns/coredns/request"
"github.com/miekg/dns"
ot "github.com/opentracing/opentracing-go"
)
+var log = clog.NewWithPlugin("forward")
+
// Forward represents a plugin instance that can proxy requests to another (DNS) server. It has a list
// of proxies each representing one upstream proxy.
type Forward struct {
diff --git a/plugin/forward/health.go b/plugin/forward/health.go
index a64b74122..4512d96c8 100644
--- a/plugin/forward/health.go
+++ b/plugin/forward/health.go
@@ -31,6 +31,7 @@ func NewHealthChecker(trans string) HealthChecker {
return &dnsHc{c: c}
}
+ log.Warningf("No healthchecker for transport %q", trans)
return nil
}
diff --git a/plugin/forward/proxy.go b/plugin/forward/proxy.go
index 453dd015b..fbe79cd69 100644
--- a/plugin/forward/proxy.go
+++ b/plugin/forward/proxy.go
@@ -50,6 +50,11 @@ 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)
})