]> git.saurik.com Git - apt.git/blobdiff - methods/https.cc
Merge branch 'debian/sid' into debian/experimental
[apt.git] / methods / https.cc
index eec858417af0262c8496ea665f901274301515d1..366148e199678ccb112e5e5b6952585396f44dc7 100644 (file)
                                                                        /*}}}*/
 using namespace std;
 
+bool HttpsMethod::Configuration(std::string Message)
+{
+   if (pkgAcqMethod::Configuration(Message) == false)
+      return false;
+
+   DropPrivsOrDie();
+
+   return true;
+}
+
 size_t
 HttpsMethod::parse_header(void *buffer, size_t size, size_t nmemb, void *userp)
 {
@@ -82,12 +92,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)
+   if(me->Queue->MaximumSize > 0 && me->File->Tell() > me->Queue->MaximumSize)
+   {
+      me->SetFailReason("MaximumSizeExceeded");
       return _error->Error("Writing more data than expected (%llu > %llu)",
-                           me->TotalWritten, me->Queue->ExpectedSize);
-
-
+                           me->TotalWritten, me->Queue->MaximumSize);
+   }
    return size*nmemb;
 }
 
@@ -452,8 +462,6 @@ int main()
    HttpsMethod Mth;
    curl_global_init(CURL_GLOBAL_SSL) ;
 
-   Mth.DropPrivsOrDie();
-
    return Mth.Run();
 }