summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2011-06-28 10:52:13 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2011-06-28 10:52:13 +0100
commitf6c68830b25f73a4b1af144924eb85c442b0f155 (patch)
tree803b49ba04a1ede0657172526f832adfda20a251 /methods
parent0db864630c16afb3ed70370f2ccac3f59475699d (diff)
parentb167bd3959c80d8cc9edfaca647949f99ed122a5 (diff)
merge from the experimental branch and prepare new upload
Diffstat (limited to 'methods')
-rw-r--r--methods/mirror.cc19
-rw-r--r--methods/mirror.h1
2 files changed, 18 insertions, 2 deletions
diff --git a/methods/mirror.cc b/methods/mirror.cc
index 2cf5c9ce1..713dc211a 100644
--- a/methods/mirror.cc
+++ b/methods/mirror.cc
@@ -134,6 +134,10 @@ bool MirrorMethod::DownloadMirrorFile(string mirror_uri_str)
string fetch = BaseUri;
fetch.replace(0,strlen("mirror://"),"http://");
+ // append the dist as a query string
+ if (Dist != "")
+ fetch += "?dist=" + Dist;
+
if(Debug)
clog << "MirrorMethod::DownloadMirrorFile(): '" << fetch << "'"
<< " to " << MirrorFile << endl;
@@ -274,8 +278,18 @@ bool MirrorMethod::InitMirrors()
while (!in.eof())
{
getline(in, s);
- if (s.size() > 0)
- AllMirrors.push_back(s);
+
+ // ignore lines that start with #
+ if (s.find("#") == 0)
+ continue;
+ // ignore empty lines
+ if (s.size() == 0)
+ continue;
+ // ignore non http lines
+ if (s.find("http://") != 0)
+ continue;
+
+ AllMirrors.push_back(s);
}
Mirror = AllMirrors[0];
UsedMirror = Mirror;
@@ -329,6 +343,7 @@ string MirrorMethod::GetMirrorFileName(string mirror_uri_str)
if(Debug)
std::cerr << "found BaseURI: " << uristr << std::endl;
BaseUri = uristr.substr(0,uristr.size()-1);
+ Dist = (*I)->GetDist();
}
}
// get new file
diff --git a/methods/mirror.h b/methods/mirror.h
index bd807e122..97d18144a 100644
--- a/methods/mirror.h
+++ b/methods/mirror.h
@@ -29,6 +29,7 @@ class MirrorMethod : public HttpMethod
vector<string> AllMirrors; // all available mirrors
string MirrorFile; // the file that contains the list of mirrors
bool DownloadedMirrorFile; // already downloaded this session
+ string Dist; // the target distrubtion (e.g. sid, oneiric)
bool Debug;