aboutsummaryrefslogtreecommitdiff
path: root/tcpdialer.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-01-28 22:12:06 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-01-28 22:12:06 +0200
commit359b3a1dd826fd4f7a4375f7072e7314ddad2400 (patch)
treeaa574443ef13071525765b561fff7f01319d503c /tcpdialer.go
parentClient: increased default dial timeout in order to minimize the number of gor... (diff)
downloadfasthttp-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.go7
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++