diff options
Diffstat (limited to 'middleware/etcd/handler.go')
-rw-r--r-- | middleware/etcd/handler.go | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/middleware/etcd/handler.go b/middleware/etcd/handler.go index 40f9523f0..75aa582bd 100644 --- a/middleware/etcd/handler.go +++ b/middleware/etcd/handler.go @@ -5,12 +5,14 @@ import ( "github.com/miekg/coredns/middleware" "github.com/miekg/coredns/middleware/etcd/msg" + "github.com/miekg/coredns/middleware/pkg/dnsutil" "github.com/miekg/coredns/request" "github.com/miekg/dns" "golang.org/x/net/context" ) +// ServeDNS implements the middleware.Handler interface. func (e *Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { opt := Options{} state := request.Request{W: w, Req: r} @@ -108,7 +110,7 @@ func (e *Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) ( m.Extra = append(m.Extra, servicesToTxt(debug)...) } - m = dedup(m) + m = dnsutil.Dedup(m) state.SizeAndDo(m) m, _ = state.Scrub(m) w.WriteMsg(m) @@ -133,11 +135,3 @@ func (e *Etcd) Err(zone string, rcode int, state request.Request, debug []msg.Se // Return success as the rcode to signal we have written to the client. return dns.RcodeSuccess, nil } - -func dedup(m *dns.Msg) *dns.Msg { - // TODO(miek): expensive! - m.Answer = dns.Dedup(m.Answer, nil) - m.Ns = dns.Dedup(m.Ns, nil) - m.Extra = dns.Dedup(m.Extra, nil) - return m -} |