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.go12
1 files changed, 9 insertions, 3 deletions
diff --git a/plugin/forward/forward.go b/plugin/forward/forward.go
index 673d04732..e9a180cb6 100644
--- a/plugin/forward/forward.go
+++ b/plugin/forward/forward.go
@@ -13,6 +13,7 @@ import (
"github.com/coredns/coredns/plugin"
"github.com/coredns/coredns/plugin/debug"
+ "github.com/coredns/coredns/plugin/dnstap"
clog "github.com/coredns/coredns/plugin/pkg/log"
"github.com/coredns/coredns/request"
@@ -46,6 +47,8 @@ type Forward struct {
// the maximum allowed (maxConcurrent)
ErrLimitExceeded error
+ tapPlugin *dnstap.Dnstap // when the dnstap plugin is loaded, we use to this to send messages out.
+
Next plugin.Handler
}
@@ -140,7 +143,10 @@ func (f *Forward) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg
if child != nil {
child.Finish()
}
- taperr := toDnstap(ctx, proxy.addr, f, state, ret, start)
+
+ if f.tapPlugin != nil {
+ toDnstap(f, proxy.addr, state, opts, ret, start)
+ }
upstreamErr = err
@@ -163,11 +169,11 @@ func (f *Forward) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg
formerr := new(dns.Msg)
formerr.SetRcode(state.Req, dns.RcodeFormatError)
w.WriteMsg(formerr)
- return 0, taperr
+ return 0, nil
}
w.WriteMsg(ret)
- return 0, taperr
+ return 0, nil
}
if upstreamErr != nil {