dns: correct setdeadline

This commit is contained in:
nadoo 2018-08-06 08:48:13 +08:00
parent 7274dcf622
commit 6744f1ad25

View File

@ -117,17 +117,17 @@ func (c *Client) exchange(qname string, reqBytes []byte, preferTCP bool) (server
servers := c.GetServers(qname) servers := c.GetServers(qname)
for _, server = range servers { for _, server = range servers {
rc, err = dialer.Dial(network, server) rc, err = dialer.Dial(network, server)
// TODO: support timeout setting for different upstream server
if len(servers) > 1 {
rc.SetDeadline(time.Now().Add(time.Duration(3) * time.Second))
}
if err != nil { if err != nil {
log.F("[dns] failed to connect to server %v: %v", server, err) log.F("[dns] failed to connect to server %v: %v", server, err)
continue continue
} }
defer rc.Close() defer rc.Close()
// TODO: support timeout setting for different upstream server
if len(servers) > 1 {
rc.SetDeadline(time.Now().Add(time.Duration(3) * time.Second))
}
switch network { switch network {
case "tcp": case "tcp":
respBytes, err = c.exchangeTCP(rc, reqBytes) respBytes, err = c.exchangeTCP(rc, reqBytes)