]> granicus.if.org Git - curl/commitdiff
lib/transfer.c: Remove factor of 8 from sleep time calculation
authorDa-Yoon Chung <dayoonc@andrew.cmu.edu>
Mon, 6 Apr 2015 17:22:07 +0000 (13:22 -0400)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 7 Apr 2015 19:55:23 +0000 (21:55 +0200)
The factor of 8 is a bytes-to-bits conversion factor, but pkt_size and
rate_bps are both in bytes. When using the rate limiting option, curl
waits 8 times too long, and then transfers very quickly until the
average rate reaches the limit. The average rate follows the limit over
time, but the actual traffic is bursty.

Thanks-to: Benjamin Gilbert
lib/transfer.c

index ed358dca98501e32825e541ec75e1dd68ea4e797..267e0a1cc00cdec1bd102858e2abc64beca3b956 100644 (file)
@@ -1270,7 +1270,7 @@ long Curl_sleep_time(curl_off_t rate_bps, curl_off_t cur_rate_bps,
    * the next packet at the adjusted rate.  We should wait
    * longer when using larger packets, for instance.
    */
-  rv = ((curl_off_t)((pkt_size * 8) * 1000) / rate_bps);
+  rv = ((curl_off_t)(pkt_size * 1000) / rate_bps);
 
   /* Catch rounding errors and always slow down at least 1ms if
    * we are running too fast.