Преглед изворни кода

make https honor ExpectedSize as well

Michael Vogt пре 12 година
родитељ
комит
ffd2dd93a6
2 измењених фајлова са 8 додато и 1 уклоњено
  1. 6 0
      methods/https.cc
  2. 2 1
      methods/https.h

+ 6 - 0
methods/https.cc

@@ -81,6 +81,12 @@ HttpsMethod::write_data(void *buffer, size_t size, size_t nmemb, void *userp)
    if(me->File->Write(buffer, size*nmemb) != true)
       return false;
 
+   me->TotalWritten += size*nmemb;
+   if(me->TotalWritten > me->Queue->ExpectedSize)
+      return _error->Error("Writing more data than expected (%llu > %llu)",
+                           me->TotalWritten, me->Queue->ExpectedSize);
+
+
    return size*nmemb;
 }
 

+ 2 - 1
methods/https.h

@@ -66,11 +66,12 @@ class HttpsMethod : public pkgAcqMethod
    CURL *curl;
    FetchResult Res;
    HttpsServerState *Server;
+   unsigned long long TotalWritten;
 
    public:
    FileFd *File;
       
-   HttpsMethod() : pkgAcqMethod("1.2",Pipeline | SendConfig), File(NULL)
+   HttpsMethod() : pkgAcqMethod("1.2",Pipeline | SendConfig), TotalWritten(0), File(NULL)
    {
       File = 0;
       curl = curl_easy_init();