]> granicus.if.org Git - curl/commitdiff
made the speedcheck actually work again
authorDaniel Stenberg <daniel@haxx.se>
Tue, 17 Oct 2000 14:53:03 +0000 (14:53 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 17 Oct 2000 14:53:03 +0000 (14:53 +0000)
lib/highlevel.c
lib/speedcheck.c
lib/speedcheck.h
lib/urldata.h

index add9735b88ffc1fa62e63ddaf71e3f38ba62072a..7a9dad308b01cdec7d1e104bd650692dab7759a4 100644 (file)
@@ -174,6 +174,7 @@ _Transfer(struct connectdata *c_conn)
 #define KEEP_WRITE 2
 
   pgrsTime(data, TIMER_PRETRANSFER);
+  speedinit(data);
 
   if (!conn->getheader) {
     header = FALSE;
index 125f077ac646ae380f70a0c508780e169613d881..d3d33e5627d3c5e647e48971d07a8e0c889f2fe3 100644 (file)
 #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;
 }
index eb037d508e8e37860097eca6cfce27ba297f2f7d..2ecef302c6d6c452d4a3bb2fa4a9bc80fa09bcae 100644 (file)
@@ -44,6 +44,7 @@
 
 #include "timeval.h"
 
+void speedinit(struct UrlData *data);
 CURLcode speedcheck(struct UrlData *data,
                     struct timeval now);
 
index e5fcf16ff4bcc4e5688eb94f3c1ee2235f7a00e2..5b5da4d1fc2c7f04c8c814b753513050cee36ea7 100644 (file)
@@ -503,6 +503,8 @@ struct UrlData {
 #ifdef KRB4
   FILE *cmdchannel;
 #endif
+
+  struct timeval keeps_speed; /* this should be request-specific */
 };
 
 #define LIBCURL_NAME "libcurl"