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 add9735..7a9dad3 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 125f077..d3d33e5 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 eb037d5..2ecef30 100644 (file)
@@ -44,6 +44,7 @@
 
 #include "timeval.h"
 
+void speedinit(struct UrlData *data);
 CURLcode speedcheck(struct UrlData *data,
                     struct timeval now);
 
index e5fcf16..5b5da4d 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"