summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
Diffstat (limited to 'methods')
-rw-r--r--methods/https.cc9
-rw-r--r--methods/https.h1
2 files changed, 8 insertions, 2 deletions
diff --git a/methods/https.cc b/methods/https.cc
index 65a744e2a..3a5981b58 100644
--- a/methods/https.cc
+++ b/methods/https.cc
@@ -85,8 +85,12 @@ HttpsMethod::write_data(void *buffer, size_t size, size_t nmemb, void *userp)
if (me->Server->JunkSize != 0)
return buffer_size;
- if (me->Res.Size == 0)
+ if (me->ReceivedData == false)
+ {
me->URIStart(me->Res);
+ me->ReceivedData = true;
+ }
+
if(me->File->Write(buffer, buffer_size) != true)
return false;
@@ -95,7 +99,7 @@ HttpsMethod::write_data(void *buffer, size_t size, size_t nmemb, void *userp)
int
HttpsMethod::progress_callback(void *clientp, double dltotal, double /*dlnow*/,
- double /*ultotal*/, double /*ulnow*/)
+ double /*ultotal*/, double /*ulnow*/)
{
HttpsMethod *me = (HttpsMethod *)clientp;
if(dltotal > 0 && me->Res.Size == 0) {
@@ -179,6 +183,7 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
char curl_errorstr[CURL_ERROR_SIZE];
URI Uri = Itm->Uri;
string remotehost = Uri.Host;
+ ReceivedData = false;
// TODO:
// - http::Pipeline-Depth
diff --git a/methods/https.h b/methods/https.h
index faac8a3cd..411b71440 100644
--- a/methods/https.h
+++ b/methods/https.h
@@ -66,6 +66,7 @@ class HttpsMethod : public pkgAcqMethod
CURL *curl;
FetchResult Res;
HttpsServerState *Server;
+ bool ReceivedData;
public:
FileFd *File;