]> git.saurik.com Git - apt.git/commitdiff
do not crash if the mirror file fails to download
authorMichael Vogt <michael.vogt@ubuntu.com>
Thu, 24 Mar 2011 16:45:20 +0000 (17:45 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Thu, 24 Mar 2011 16:45:20 +0000 (17:45 +0100)
debian/changelog
methods/mirror.cc

index 6ccb3dede32317574d3bee8ab334461c1b459a1b..fc883dc0d40088069c2ef7093fe5d322f427ef5e 100644 (file)
@@ -15,6 +15,7 @@ apt (0.8.13) unstable; urgency=low
     - when downloading data, show the mirror being used
     - randomize mirror list to ensure more even load
     - merge fix from Matt Zimmerman, many thanks (LP: #741098)
+    - do not crash if the mirror file fails to download
 
  -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 10 Mar 2011 15:56:54 +0100
 
index 9d8202dad58340dfa1734bbe2850e53dbfc44ac4..00757e61f0a7a8ba65c13485042d444fc2c9c743 100644 (file)
@@ -160,6 +160,9 @@ bool MirrorMethod::RandomizeMirrorFile(string mirror_file)
    vector<string> content;
    string line;
 
+   if (!FileExists(mirror_file))
+      return false;
+
    // read 
    ifstream in(mirror_file.c_str());
    while ( !in.eof() ) {
@@ -356,8 +359,8 @@ bool MirrorMethod::Fetch(FetchItem *Itm)
    if(Itm->IndexFile && !DownloadedMirrorFile)
    {
       Clean(_config->FindDir("Dir::State::mirrors"));
-      DownloadMirrorFile(Itm->Uri);
-      RandomizeMirrorFile(MirrorFile);
+      if (DownloadMirrorFile(Itm->Uri))
+         RandomizeMirrorFile(MirrorFile);
    }
 
    if(AllMirrors.empty()) {