close resolver connection
This commit is contained in:
parent
694c05b50a
commit
f1bad4d07b
14
resolver.go
14
resolver.go
@ -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,
|
|||||||
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
|
|||||||
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
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user