]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-item.cc
* merged with matt's tree
[apt.git] / apt-pkg / acquire-item.cc
index fcd655f2aaee4b311958bac79dcab2d8f97875f4..de8cfe8f2249e2b74d2aeccd46b93264663bcf94 100644 (file)
@@ -321,6 +321,10 @@ pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner,
    DestFile = _config->FindDir("Dir::State::lists") + "partial/";
    DestFile += URItoFileName(URI);
 
+   // remove any partial downloaded sig-file. it may confuse proxies
+   // and is too small to warrant a partial download anyway
+   unlink(DestFile.c_str());
+
    // Create the item
    Desc.Description = URIDesc;
    Desc.Owner = this;
@@ -346,13 +350,20 @@ pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner,
 /* The only header we use is the last-modified header. */
 string pkgAcqMetaSig::Custom600Headers()
 {
+   // mvo: we don't really need the last-modified header here
+   //      1) it points to "Final" and that was renamed to "DestFile" 
+   //         so it's never send anyway
+   //      2) because DestFIle is in partial/ we will send a partial request
+   //         with if-range in the http method (or the equivalent for ftp). 
+   //         that should give the same result
+
    string Final = _config->FindDir("Dir::State::lists");
    Final += URItoFileName(RealURI);
    
    struct stat Buf;
    if (stat(Final.c_str(),&Buf) != 0)
       return "\nIndex-File: true";
-   
+
    return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);
 }
 
@@ -392,9 +403,6 @@ void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
    // mistakenly trusted
    string Final = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
    unlink(Final.c_str());
-   Final = _config->FindDir("Dir::State::lists") + "partial/"+ URItoFileName(RealURI);
-   unlink(Final.c_str());
-
 
    // queue a pkgAcqMetaIndex with no sigfile
    new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc,