diff options
Diffstat (limited to 'plugin/forward/forward.go')
-rw-r--r-- | plugin/forward/forward.go | 12 |
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 { |