diff options
-rw-r--r-- | lib/multi.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/multi.c b/lib/multi.c index b6c327b77..6506b5ee4 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -43,6 +43,7 @@ #include "http.h" #include "select.h" #include "warnless.h" +#include "speedcheck.h" #define _MPRINTF_REPLACE /* use our functions only */ #include <curl/mprintf.h> @@ -1518,7 +1519,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, case CURLM_STATE_TOOFAST: /* limit-rate exceeded in either direction */ /* if both rates are within spec, resume transfer */ - Curl_pgrsUpdate(easy->easy_conn); + if(Curl_pgrsUpdate(easy->easy_conn)) + easy->result = CURLE_ABORTED_BY_CALLBACK; + else + easy->result = Curl_speedcheck(data, now); + if(( (data->set.max_send_speed == 0) || (data->progress.ulspeed < data->set.max_send_speed )) && ( (data->set.max_recv_speed == 0) || |