diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2016-01-28 22:12:06 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2016-01-28 22:12:06 +0200 |
commit | 359b3a1dd826fd4f7a4375f7072e7314ddad2400 (patch) | |
tree | aa574443ef13071525765b561fff7f01319d503c /tcpdialer.go | |
parent | Client: increased default dial timeout in order to minimize the number of gor... (diff) | |
download | fasthttp-359b3a1dd826fd4f7a4375f7072e7314ddad2400.tar.gz fasthttp-359b3a1dd826fd4f7a4375f7072e7314ddad2400.tar.bz2 fasthttp-359b3a1dd826fd4f7a4375f7072e7314ddad2400.zip |
Client: fixed a bug with improper dial timeout calculation on dial errors
Diffstat (limited to 'tcpdialer.go')
-rw-r--r-- | tcpdialer.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/tcpdialer.go b/tcpdialer.go index 9c44ce1..e96fdb8 100644 --- a/tcpdialer.go +++ b/tcpdialer.go @@ -177,13 +177,14 @@ func (d *tcpDialer) NewDial(timeout time.Duration) DialFunc { var conn net.Conn startTime := time.Now() n := uint32(len(addrs)) + timeoutRemaining := timeout for n > 0 { - conn, err = tryDial(network, &addrs[idx%n], timeout) + conn, err = tryDial(network, &addrs[idx%n], timeoutRemaining) if err == nil { return conn, nil } - timeout -= time.Since(startTime) - if timeout <= 0 { + timeoutRemaining -= time.Since(startTime) + if timeoutRemaining <= 0 { return nil, ErrDialTimeout } idx++ |