summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2014-08-26 19:20:04 -0700
committerMichael Vogt <mvo@debian.org>2014-08-26 19:20:04 -0700
commitffd2dd93a640b47663ebdccc4fda00b426b3db71 (patch)
tree7aa5fc02d180335b2c7a20e5403a19d4efa0fd5f
parentdcd5856b11c685ca6d4629212d2978ce196ea65c (diff)
make https honor ExpectedSize as well
-rw-r--r--methods/https.cc6
-rw-r--r--methods/https.h3
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();