Explorar o código

make i-m-s work again

Michael Vogt %!s(int64=12) %!d(string=hai) anos
pai
achega
63d0f85391
Modificáronse 2 ficheiros con 29 adicións e 4 borrados
  1. 7 4
      apt-pkg/acquire-item.cc
  2. 22 0
      test/integration/test-apt-update-ims

+ 7 - 4
apt-pkg/acquire-item.cc

@@ -1164,10 +1164,7 @@ void pkgAcqIndex::Done(string Message,unsigned long long Size,HashStringList con
       // Done, queue for rename on transaction finished
       // Done, queue for rename on transaction finished
       PartialFile = DestFile;
       PartialFile = DestFile;
 
 
-      string FinalFile = _config->FindDir("Dir::State::lists");
-      FinalFile += URItoFileName(RealURI);
-      DestFile = FinalFile;
-#if 0
+#if 1 // FIXME: waaaay too complicated
       /* We restore the original name to DestFile so that the clean operation
       /* We restore the original name to DestFile so that the clean operation
          will work OK */
          will work OK */
       DestFile = _config->FindDir("Dir::State::lists") + "partial/";
       DestFile = _config->FindDir("Dir::State::lists") + "partial/";
@@ -1177,6 +1174,12 @@ void pkgAcqIndex::Done(string Message,unsigned long long Size,HashStringList con
       if (Erase == true)
       if (Erase == true)
 	 unlink(DestFile.c_str());
 	 unlink(DestFile.c_str());
 #endif
 #endif
+
+      // Done, queue for rename on transaction finished
+      string FinalFile = _config->FindDir("Dir::State::lists");
+      FinalFile += URItoFileName(RealURI);
+      DestFile = FinalFile;
+
       return;
       return;
    } else {
    } else {
       // FIXME: use the same method to find 
       // FIXME: use the same method to find 

+ 22 - 0
test/integration/test-apt-update-ims

@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64'
+
+buildsimplenativepackage 'unrelated' 'all' '0.5~squeeze1' 'unstable'
+
+setupaptarchive
+changetowebserver
+
+testsuccess aptget update
+
+# check that I-M-S header is kept in redirections
+testequal "Hit http://localhost:8080 unstable InRelease
+Hit http://localhost:8080 unstable/main Sources
+Hit http://localhost:8080 unstable/main amd64 Packages
+Hit http://localhost:8080 unstable/main Translation-en
+Reading package lists..." aptget update 
+