Commit f1bad4d0 authored by ginuerzh's avatar ginuerzh

close resolver connection

parent 694c05b5
...@@ -623,17 +623,12 @@ func (ex *dnsExchanger) Exchange(ctx context.Context, query []byte) ([]byte, err ...@@ -623,17 +623,12 @@ func (ex *dnsExchanger) Exchange(ctx context.Context, query []byte) ([]byte, err
return nil, err return nil, err
} }
c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t))) c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t)))
defer c.Close()
mq := &dns.Msg{}
if err = mq.Unpack(query); err != nil {
return nil, err
}
conn := &dns.Conn{ conn := &dns.Conn{
Conn: c, Conn: c,
} }
if _, err = conn.Write(query); err != nil {
if err = conn.WriteMsg(mq); err != nil {
return nil, err return nil, err
} }
...@@ -683,18 +678,17 @@ func (ex *dnsTCPExchanger) Exchange(ctx context.Context, query []byte) ([]byte, ...@@ -683,18 +678,17 @@ func (ex *dnsTCPExchanger) Exchange(ctx context.Context, query []byte) ([]byte,
return nil, err return nil, err
} }
c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t))) c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t)))
defer c.Close()
conn := &dns.Conn{ conn := &dns.Conn{
Conn: c, Conn: c,
} }
if _, err = conn.Write(query); err != nil { if _, err = conn.Write(query); err != nil {
return nil, err return nil, err
} }
mr, err := conn.ReadMsg() mr, err := conn.ReadMsg()
if err != nil { if err != nil {
log.Log("[dns] exchange", err)
return nil, err return nil, err
} }
...@@ -753,11 +747,11 @@ func (ex *dotExchanger) Exchange(ctx context.Context, query []byte) ([]byte, err ...@@ -753,11 +747,11 @@ func (ex *dotExchanger) Exchange(ctx context.Context, query []byte) ([]byte, err
return nil, err return nil, err
} }
c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t))) c.SetDeadline(time.Now().Add(ex.options.timeout - time.Since(t)))
defer c.Close()
conn := &dns.Conn{ conn := &dns.Conn{
Conn: c, Conn: c,
} }
if _, err = conn.Write(query); err != nil { if _, err = conn.Write(query); err != nil {
return nil, err return nil, err
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment