From: Daniel Stenberg Date: Tue, 17 Oct 2000 14:53:03 +0000 (+0000) Subject: made the speedcheck actually work again X-Git-Tag: upstream/7.37.1~17542 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=135cc036aa1425c52c3cf90176158c19e109cb9b;p=platform%2Fupstream%2Fcurl.git made the speedcheck actually work again --- diff --git a/lib/highlevel.c b/lib/highlevel.c index add9735..7a9dad3 100644 --- a/lib/highlevel.c +++ b/lib/highlevel.c @@ -174,6 +174,7 @@ _Transfer(struct connectdata *c_conn) #define KEEP_WRITE 2 pgrsTime(data, TIMER_PRETRANSFER); + speedinit(data); if (!conn->getheader) { header = FALSE; diff --git a/lib/speedcheck.c b/lib/speedcheck.c index 125f077..d3d33e5 100644 --- a/lib/speedcheck.c +++ b/lib/speedcheck.c @@ -50,21 +50,24 @@ #include "sendf.h" #include "speedcheck.h" +void speedinit(struct UrlData *data) +{ + memset(&data->keeps_speed, 0, sizeof(struct timeval)); +} + CURLcode speedcheck(struct UrlData *data, struct timeval now) { - static struct timeval keeps_speed; - - if((data->current_speed >= 0) && + if((data->progress.current_speed >= 0) && data->low_speed_time && - (tvlong(keeps_speed) != 0) && - (data->current_speed < data->low_speed_limit)) { + (tvlong(data->keeps_speed) != 0) && + (data->progress.current_speed < data->low_speed_limit)) { /* We are now below the "low speed limit". If we are below it for "low speed time" seconds we consider that enough reason to abort the download. */ - if( tvdiff(now, keeps_speed) > data->low_speed_time) { + if( tvdiff(now, data->keeps_speed) > data->low_speed_time) { /* we have been this slow for long enough, now die */ failf(data, "Operation too slow. " @@ -76,7 +79,7 @@ CURLcode speedcheck(struct UrlData *data, } else { /* we keep up the required speed all right */ - keeps_speed = now; + data->keeps_speed = now; } return CURLE_OK; } diff --git a/lib/speedcheck.h b/lib/speedcheck.h index eb037d5..2ecef30 100644 --- a/lib/speedcheck.h +++ b/lib/speedcheck.h @@ -44,6 +44,7 @@ #include "timeval.h" +void speedinit(struct UrlData *data); CURLcode speedcheck(struct UrlData *data, struct timeval now); diff --git a/lib/urldata.h b/lib/urldata.h index e5fcf16..5b5da4d 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -503,6 +503,8 @@ struct UrlData { #ifdef KRB4 FILE *cmdchannel; #endif + + struct timeval keeps_speed; /* this should be request-specific */ }; #define LIBCURL_NAME "libcurl"