X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/5f6b130d6342965bfa49beb9413bdf742440b8ab..eb3947c6510042c054a319d8053821faf7244dea:/methods/mirror.h?ds=sidebyside diff --git a/methods/mirror.h b/methods/mirror.h index ca3428830..0a3ea6e92 100644 --- a/methods/mirror.h +++ b/methods/mirror.h @@ -20,17 +20,32 @@ using std::endl; #include "http.h" -class MirrorMethod : public pkgAcqMethod +class MirrorMethod : public HttpMethod { FetchResult Res; - string Mirror; - string BaseUri; - string MirrorFile; - bool HasMirrorFile; + // we simply transform between BaseUri and Mirror + string BaseUri; // the original mirror://... url + string Mirror; // the selected mirror uri (http://...) + vector AllMirrors; // all available mirrors + string MirrorFile; // the file that contains the list of mirrors + bool DownloadedMirrorFile; // already downloaded this session + + bool Debug; protected: - bool GetMirrorFile(string uri); - bool SelectMirror(); + bool DownloadMirrorFile(string uri); + string GetMirrorFileName(string uri); + bool InitMirrors(); + bool TryNextMirror(); + void CurrentQueueUriToMirror(); + bool Clean(string dir); + + // we need to overwrite those to transform the url back + virtual void Fail(string Why, bool Transient = false); + virtual void URIStart(FetchResult &Res); + virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0); + virtual bool Configuration(string Message); + public: MirrorMethod(); virtual bool Fetch(FetchItem *Itm);