the Owner Acquire class. Derived classes will then call QueueURI to
register all the URI's they wish to fetch at the initial moment.
- Three item classes are provided to provide functionality for
- downloading of Index, Translation and Packages files.
+ Two item classes are provided to provide functionality for downloading
+ of Index files and downloading of Packages.
A Archive class is provided for downloading .deb files. It does Md5
checking and source location as well as a retry algorithm.
virtual ~Item();
};
-// item for index diffs
-
-struct DiffInfo {
- string file;
- string sha1;
- unsigned long size;
-};
-
-class pkgAcqDiffIndex : public pkgAcquire::Item
-{
- protected:
- bool Debug;
- pkgAcquire::ItemDesc Desc;
- string RealURI;
- string ExpectedMD5;
- string CurrentPackagesFile;
- string Description;
-
- public:
- // Specialized action members
- virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
- virtual void Done(string Message,unsigned long Size,string Md5Hash,
- pkgAcquire::MethodConfig *Cnf);
- virtual string DescURI() {return RealURI + "Index";};
- virtual string Custom600Headers();
-
- // helpers
- bool ParseDiffIndex(string IndexDiffFile);
-
- pkgAcqDiffIndex(pkgAcquire *Owner,string URI,string URIDesc,
- string ShortDesct, string ExpectedMD5);
-};
-
-class pkgAcqIndexDiffs : public pkgAcquire::Item
-{
- protected:
- bool Debug;
- pkgAcquire::ItemDesc Desc;
- string RealURI;
- string ExpectedMD5;
-
- // this is the SHA-1 sum we expect after the patching
- string Description;
- vector<DiffInfo> available_patches;
- enum {StateFetchIndex,StateFetchDiff,StateUnzipDiff,StateApplyDiff} State;
-
- public:
-
- // Specialized action members
- virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
- virtual void Done(string Message,unsigned long Size,string Md5Hash,
- pkgAcquire::MethodConfig *Cnf);
- virtual string DescURI() {return RealURI + "Index";};
-
- // various helpers
- bool QueueNextDiff();
- bool ApplyDiff(string PatchFile);
- void Finish(bool allDone=false);
-
- pkgAcqIndexDiffs(pkgAcquire *Owner,string URI,string URIDesc,
- string ShortDesct, string ExpectedMD5,
- vector<DiffInfo> diffs=vector<DiffInfo>());
-};
-
// Item class for index files
class pkgAcqIndex : public pkgAcquire::Item
{
string ShortDesct, string ExpectedMD5, string compressExt="");
};
-// Item class for translated package index files
-class pkgAcqIndexTrans : public pkgAcqIndex
-{
- public:
-
- virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
- pkgAcqIndexTrans(pkgAcquire *Owner,string URI,string URIDesc,
- string ShortDesct);
-};
-
struct IndexTarget
{
string URI;
const vector<struct IndexTarget*>* IndexTargets;
indexRecords* MetaIndexParser;
bool AuthPass;
+ // required to deal gracefully with problems caused by incorrect ims hits
+ bool IMSHit;
- bool VerifyVendor();
+ bool VerifyVendor(string Message);
void RetrievalDone(string Message);
void AuthDone(string Message);
void QueueIndexes(bool verify);
pkgAcquire::MethodConfig *Cnf);
virtual string MD5Sum() {return Md5Hash;};
virtual string DescURI() {return Desc.URI;};
-
- pkgAcqFile(pkgAcquire *Owner,string URI,string MD5,unsigned long Size,
- string Desc,string ShortDesc);
+
+ // If DestFilename is empty, download to DestDir/<basename> if
+ // DestDir is non-empty, $CWD/<basename> otherwise. If
+ // DestFilename is NOT empty, DestDir is ignored and DestFilename
+ // is the absolute name to which the file should be downloaded.
+ pkgAcqFile(pkgAcquire *Owner, string URI, string MD5, unsigned long Size,
+ string Desc, string ShortDesc,
+ const string &DestDir="", const string &DestFilename="");
};
#endif