]> git.saurik.com Git - apt.git/blobdiff - methods/mirror.cc
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid
[apt.git] / methods / mirror.cc
index 3d5983efa59a49b3d7b67b633daadedb923ded50..83ef0d133d0853b885dbba29a85798aed248b812 100644 (file)
@@ -114,7 +114,7 @@ bool MirrorMethod::Clean(string Dir)
       for(I=list.begin(); I != list.end(); ++I)
       {
         string uri = (*I)->GetURI();
-        if(uri.find("mirror://") != 0)
+        if(uri.compare(0, strlen("mirror://"), "mirror://") != 0)
            continue;
         string BaseUri = uri.substr(0,uri.size()-1);
         if (URItoFileName(BaseUri) == Dir->d_name)
@@ -124,9 +124,10 @@ bool MirrorMethod::Clean(string Dir)
       if (I == list.end())
         unlink(Dir->d_name);
    };
-   
-   chdir(StartDir.c_str());
+
    closedir(D);
+   if (chdir(StartDir.c_str()) != 0)
+      return _error->Errno("chdir",_("Unable to change to %s"),StartDir.c_str());
    return true;   
 }
 
@@ -147,9 +148,9 @@ bool MirrorMethod::DownloadMirrorFile(string mirror_uri_str)
    // append all architectures
    std::vector<std::string> vec = APT::Configuration::getArchitectures();
    for (std::vector<std::string>::const_iterator I = vec.begin();
-        I != vec.end(); I++)
+        I != vec.end(); ++I)
       if (I == vec.begin())
-         fetch += "?arch" + (*I);
+         fetch += "?arch=" + (*I);
       else
          fetch += "&arch=" + (*I);
 
@@ -197,9 +198,9 @@ bool MirrorMethod::RandomizeMirrorFile(string mirror_file)
    // "stable" on the same machine. this is to avoid running into out-of-sync
    // issues (i.e. Release/Release.gpg different on each mirror)
    struct utsname buf;
-   int seed=1, i;
+   int seed=1;
    if(uname(&buf) == 0) {
-      for(i=0,seed=1; buf.nodename[i] != 0; i++) {
+      for(int i=0,seed=1; buf.nodename[i] != 0; ++i) {
          seed = seed * 31 + buf.nodename[i];
       }
    }
@@ -305,11 +306,14 @@ bool MirrorMethod::InitMirrors()
       if (s.size() == 0)
          continue;
       // ignore non http lines
-      if (s.find("http://") != 0)
+      if (s.compare(0, strlen("http://"), "http://") != 0)
          continue;
 
       AllMirrors.push_back(s);
    }
+   if (AllMirrors.empty()) {
+       return _error->Error(_("No entry found in mirror file '%s'"), MirrorFile.c_str());
+   }
    Mirror = AllMirrors[0];
    UsedMirror = Mirror;
    return true;