aboutsummaryrefslogtreecommitdiff
path: root/plugin/forward/forward.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/forward/forward.go')
-rw-r--r--plugin/forward/forward.go6
1 files changed, 2 insertions, 4 deletions
diff --git a/plugin/forward/forward.go b/plugin/forward/forward.go
index 4c842f49e..6d06f79f2 100644
--- a/plugin/forward/forward.go
+++ b/plugin/forward/forward.go
@@ -7,7 +7,6 @@ package forward
import (
"crypto/tls"
"errors"
- "io"
"time"
"github.com/coredns/coredns/plugin"
@@ -92,11 +91,9 @@ func (f *Forward) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg
ret *dns.Msg
err error
)
- stop := false
for {
ret, err = proxy.connect(ctx, state, f.forceTCP, true)
- if err != nil && err == io.EOF && !stop { // Remote side closed conn, can only happen with TCP.
- stop = true
+ if err != nil && err == errCachedClosed { // Remote side closed conn, can only happen with TCP.
continue
}
break
@@ -176,6 +173,7 @@ var (
errInvalidDomain = errors.New("invalid domain for forward")
errNoHealthy = errors.New("no healthy proxies")
errNoForward = errors.New("no forwarder defined")
+ errCachedClosed = errors.New("cached connection was closed by peer")
)
// policy tells forward what policy for selecting upstream it uses.