From f1bad4d07bf3c9019881a6e7346180a9276371f4 Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Fri, 17 Jan 2020 10:11:21 +0800 Subject: [PATCH] close resolver connection --- resolver.go | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/resolver.go b/resolver.go index 68873b1..75e9f10 100644 --- a/resolver.go +++ b/resolver.go @@ -623,17 +623,12 @@ func (ex *dnsExchanger) Exchange(ctx context.Context, query []byte) ([]byte, err return nil, err } c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t))) - - mq := &dns.Msg{} - if err = mq.Unpack(query); err != nil { - return nil, err - } + defer c.Close() conn := &dns.Conn{ Conn: c, } - - if err = conn.WriteMsg(mq); err != nil { + if _, err = conn.Write(query); err != nil { return nil, err } @@ -683,18 +678,17 @@ func (ex *dnsTCPExchanger) Exchange(ctx context.Context, query []byte) ([]byte, return nil, err } c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t))) + defer c.Close() conn := &dns.Conn{ Conn: c, } - if _, err = conn.Write(query); err != nil { return nil, err } mr, err := conn.ReadMsg() if err != nil { - log.Log("[dns] exchange", err) return nil, err } @@ -753,11 +747,11 @@ func (ex *dotExchanger) Exchange(ctx context.Context, query []byte) ([]byte, err return nil, err } c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t))) + defer c.Close() conn := &dns.Conn{ Conn: c, } - if _, err = conn.Write(query); err != nil { return nil, err }