FILE: don't wait due to CURLOPT_MAX_RECV_SPEED_LARGE
authorDaniel Stenberg <daniel@haxx.se>
Sun, 22 Dec 2013 22:36:11 +0000 (23:36 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Sun, 22 Dec 2013 22:44:14 +0000 (23:44 +0100)
commit2715d7f948c8eb7cd3cba38f3dff6d4148e7cfaf
treeba58e244a9542dff5a281355608bc66501319957
parent3db1f3dd817d8826d2a2d735c851710c87efd06f
FILE: don't wait due to CURLOPT_MAX_RECV_SPEED_LARGE

The FILE:// code doesn't support this option - and it doesn't make sense
to support it as long as it works as it does since then it'd only block
even longer.

But: setting CURLOPT_MAX_RECV_SPEED_LARGE would make the transfer first
get done and then libcurl would wait until the average speed would get
low enough. This happened because the transfer happens completely in the
DO state for FILE:// but then it would still unconditionally continue in
to the PERFORM state where the speed check is made.

Starting now, the code will skip from DO_DONE to DONE immediately if no
socket is set to be recv()ed or send()ed to.

Bug: http://curl.haxx.se/bug/view.cgi?id=1312
Reported-by: Mohammad AlSaleh
lib/multi.c