Skip to content

Commit 575808f

Browse files
committed
support empty client dialer
1 parent 2ebc892 commit 575808f

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

client.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,14 @@ func (c *Client) Exchange(ctx context.Context, req, resp *Message) (err error) {
3838

3939
// exchange performs the transport-level DNS round trip with the configured dialer.
4040
func (c *Client) exchange(ctx context.Context, req, resp *Message) error {
41-
dialer := c.Dialer
42-
if dialer == nil {
43-
dialer = &net.Dialer{Timeout: c.Timeout}
44-
}
41+
var err error
42+
var conn net.Conn
4543

46-
conn, err := dialer.DialContext(ctx, "udp", c.Addr)
44+
if c.Dialer != nil {
45+
conn, err = c.Dialer.DialContext(ctx, "udp", c.Addr)
46+
} else {
47+
conn, err = net.Dial("udp", c.Addr)
48+
}
4749
if err != nil {
4850
return err
4951
}
@@ -95,5 +97,9 @@ func (c *Client) exchange(ctx context.Context, req, resp *Message) error {
9597
d.Put(conn)
9698
}
9799

100+
if c.Dialer == nil {
101+
_ = conn.Close()
102+
}
103+
98104
return nil
99105
}

0 commit comments

Comments
 (0)