Просмотр исходного кода

fix compiler warning in the new mirror code

David Kalnischkies лет назад: 16
Родитель
Сommit
51561c4de7
2 измененных файлов с 17 добавлено и 12 удалено
  1. 1 1
      methods/http.h
  2. 16 11
      methods/mirror.cc

+ 1 - 1
methods/http.h

@@ -13,7 +13,7 @@
 
 #define MAXLEN 360
 
-
+#include <apt-pkg/hashes.h>
 
 using std::cout;
 using std::endl;

+ 16 - 11
methods/mirror.cc

@@ -153,11 +153,12 @@ void MirrorMethod::CurrentQueueUriToMirror()
       return;
 
    // find current mirror and select next one
-   for (int i=0; i < AllMirrors.size(); i++) 
+   for (vector<string>::const_iterator mirror = AllMirrors.begin();
+	mirror != AllMirrors.end(); ++mirror)
    {
-      if (Queue->Uri.find(AllMirrors[i]) == 0)
+      if (Queue->Uri.find(*mirror) == 0)
       {
-	 Queue->Uri.replace(0, AllMirrors[i].size(), BaseUri);
+	 Queue->Uri.replace(0, mirror->length(), BaseUri);
 	 return;
       }
    }
@@ -168,15 +169,19 @@ void MirrorMethod::CurrentQueueUriToMirror()
 bool MirrorMethod::TryNextMirror()
 {
    // find current mirror and select next one
-   for (int i=0; i < AllMirrors.size()-1; i++) 
+   for (vector<string>::const_iterator mirror = AllMirrors.begin();
+	mirror != AllMirrors.end(); ++mirror)
    {
-      if (Queue->Uri.find(AllMirrors[i]) == 0)
-      {
-	 Queue->Uri.replace(0, AllMirrors[i].size(), AllMirrors[i+1]);
-	 if (Debug)
-	    clog << "TryNextMirror: " << Queue->Uri << endl;
-	 return true;
-      }
+      if (Queue->Uri.find(*mirror) != 0)
+	 continue;
+
+      vector<string>::const_iterator nextmirror = mirror + 1;
+      if (nextmirror != AllMirrors.end())
+	 break;
+      Queue->Uri.replace(0, mirror->length(), *nextmirror);
+      if (Debug)
+	 clog << "TryNextMirror: " << Queue->Uri << endl;
+      return true;
    }
 
    if (Debug)