From 91479b4c8ee7046e07e12848182fc635754c7a66 Mon Sep 17 00:00:00 2001 From: hniksic Date: Thu, 5 May 2005 02:48:08 -0700 Subject: [PATCH] [svn] Reset the sleep_adjust limit value for new downloads. Fixes Debian bug 232276. --- src/ChangeLog | 6 ++++++ src/retr.c | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 83ac595b..58143fa8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2005-05-05 Hrvoje Niksic + + * retr.c (limit_bandwidth_reset): Reset sleep_adjust. + (limit_bandwidth): Don't allow huge "adjustment" values that + result from being suspended for a while. + 2005-05-04 Hrvoje Niksic * wget.h: If gettext was found but libtintl.h wasn't, declare diff --git a/src/retr.c b/src/retr.c index c5c1532b..493b830f 100644 --- a/src/retr.c +++ b/src/retr.c @@ -82,6 +82,7 @@ limit_bandwidth_reset (void) { limit_data.chunk_bytes = 0; limit_data.chunk_start = 0; + limit_data.sleep_adjust = 0; } /* Limit the bandwidth by pausing the download for an amount of time. @@ -125,6 +126,12 @@ limit_bandwidth (wgint bytes, struct ptimer *timer) desired and the actual sleep, and adjust the next sleep by that amount. */ limit_data.sleep_adjust = slp - (t1 - t0); + /* If sleep_adjust is very large, it's likely due to suspension + and not clock inaccuracy. Don't enforce those. */ + if (limit_data.sleep_adjust > 500) + limit_data.sleep_adjust = 500; + else if (limit_data.sleep_adjust < -500) + limit_data.sleep_adjust = -500; } limit_data.chunk_bytes = 0; -- 2.39.2