timers: fix timer regression involving redirects / reconnects
authorDaniel Stenberg <daniel@haxx.se>
Thu, 15 May 2014 18:43:32 +0000 (20:43 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 15 May 2014 19:28:19 +0000 (21:28 +0200)
commit84bd19ffd4374fd7b4fbe5a0ee0ecbf263d52ede
tree3262cadb8d5a84edfa0ce7b7e758309f4d56861c
parent678239df547bacf762dea664dabf1ce207f0a048
timers: fix timer regression involving redirects / reconnects

In commit 0b3750b5c23c25f (released in 7.36.0) we fixed a timeout issue
but instead broke the timings.

To fix this, I introduce a new timestamp to use for the timeouts and
restored the previous timestamp and timestamp position so that the old
timer functionality is restored.

In addition to that, that change also broke connection timeouts for when
more than one connect was used (as it would then count the total time
from the first connect and not for the most recent one). Now
Curl_timeleft() has been modified so that it checks against different
start times depending on which timeout it checks.

Test 1303 is updated accordingly.

Bug: http://curl.haxx.se/mail/lib-2014-05/0147.html
Reported-by: Ryan Braud
lib/connect.c
lib/multi.c
lib/progress.c
lib/progress.h
lib/urldata.h
tests/unit/unit1303.c