diff options
author | Michael Vogt <mvo@debian.org> | 2014-08-26 19:20:04 -0700 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2014-08-26 19:20:04 -0700 |
commit | ffd2dd93a640b47663ebdccc4fda00b426b3db71 (patch) | |
tree | 7aa5fc02d180335b2c7a20e5403a19d4efa0fd5f | |
parent | dcd5856b11c685ca6d4629212d2978ce196ea65c (diff) |
make https honor ExpectedSize as well
-rw-r--r-- | methods/https.cc | 6 | ||||
-rw-r--r-- | methods/https.h | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/methods/https.cc b/methods/https.cc index e0348ab58..cacd8a6bc 100644 --- a/methods/https.cc +++ b/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; } diff --git a/methods/https.h b/methods/https.h index faac8a3cd..2335559fb 100644 --- a/methods/https.h +++ b/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(); |