X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/ab559b358d7c390ac63bfcf8d526ca44761aafc5..ac5b205a831168ee76e8760e19eb7d43aa361851:/apt-pkg/acquire-item.h diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 6c5ecde12..f56fd0465 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-item.h,v 1.20 1999/05/24 03:39:37 jgg Exp $ +// $Id: acquire-item.h,v 1.26.2.3 2004/01/02 18:51:00 mdz Exp $ /* ###################################################################### Acquire Item - Item to acquire @@ -21,8 +21,11 @@ #define PKGLIB_ACQUIRE_ITEM_H #include +#include +#include #include #include +#include #ifdef __GNUG__ #pragma interface "apt-pkg/acquire-item.h" @@ -45,11 +48,11 @@ class pkgAcquire::Item public: // State of the item - enum {StatIdle, StatFetching, StatDone, StatError} Status; + enum {StatIdle, StatFetching, StatDone, StatError, StatAuthError} Status; string ErrorText; unsigned long FileSize; unsigned long PartialSize; - char *Mode; + const char *Mode; unsigned long ID; bool Complete; bool Local; @@ -62,56 +65,146 @@ class pkgAcquire::Item // Action members invoked by the worker virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); - virtual void Done(string Message,unsigned long Size,string Md5Hash); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); virtual void Start(string Message,unsigned long Size); virtual string Custom600Headers() {return string();}; virtual string DescURI() = 0; + virtual string ShortDesc() {return DescURI();} virtual void Finished() {}; // Inquire functions virtual string MD5Sum() {return string();}; - + pkgAcquire *GetOwner() {return Owner;}; + virtual bool IsTrusted() {return false;}; + Item(pkgAcquire *Owner); virtual ~Item(); }; +// item for index diffs +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 ServerSha1; + string CurrentPackagesFile; + string Description; + vector needed_files; + + 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 ParseIndexDiff(string IndexDiffFile); + void QueueDiffIndex(string URI); + bool QueueNextDiff(); + bool ApplyDiff(string PatchFile); + void Finish(bool allDone=false); + + pkgAcqIndexDiffs(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesct, string ExpectedMD5, + vector diffs=vector()); +}; + // Item class for index files class pkgAcqIndex : public pkgAcquire::Item { protected: - const pkgSourceList::Item *Location; bool Decompression; bool Erase; pkgAcquire::ItemDesc Desc; + string RealURI; + string ExpectedMD5; + + 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 Custom600Headers(); + virtual string DescURI() {return RealURI + ".gz";}; + + pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesct, string ExpectedMD5, string compressExt=""); +}; + +struct IndexTarget +{ + string URI; + string Description; + string ShortDesc; + string MetaKey; +}; + +// Item class for index signatures +class pkgAcqMetaSig : public pkgAcquire::Item +{ + protected: + + pkgAcquire::ItemDesc Desc; + string RealURI,MetaIndexURI,MetaIndexURIDesc,MetaIndexShortDesc; + indexRecords* MetaIndexParser; + const vector* IndexTargets; + public: // Specialized action members - virtual void Done(string Message,unsigned long Size,string Md5Hash); + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); virtual string Custom600Headers(); - virtual string DescURI() {return Location->PackagesURI();}; + virtual string DescURI() {return RealURI; }; - pkgAcqIndex(pkgAcquire *Owner,const pkgSourceList::Item *Location); + pkgAcqMetaSig(pkgAcquire *Owner,string URI,string URIDesc, string ShortDesc, + string MetaIndexURI, string MetaIndexURIDesc, string MetaIndexShortDesc, + const vector* IndexTargets, + indexRecords* MetaIndexParser); }; -// Item class for index files -class pkgAcqIndexRel : public pkgAcquire::Item +// Item class for index signatures +class pkgAcqMetaIndex : public pkgAcquire::Item { protected: - const pkgSourceList::Item *Location; pkgAcquire::ItemDesc Desc; + string RealURI; // FIXME: is this redundant w/ Desc.URI? + string SigFile; + const vector* IndexTargets; + indexRecords* MetaIndexParser; + bool AuthPass; + + bool VerifyVendor(); + void RetrievalDone(string Message); + void AuthDone(string Message); + void QueueIndexes(bool verify); public: // Specialized action members virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); - virtual void Done(string Message,unsigned long Size,string Md5Hash); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); virtual string Custom600Headers(); - virtual string DescURI() {return Location->ReleaseURI();}; - - pkgAcqIndexRel(pkgAcquire *Owner,const pkgSourceList::Item *Location); + virtual string DescURI() {return RealURI; }; + + pkgAcqMetaIndex(pkgAcquire *Owner, + string URI,string URIDesc, string ShortDesc, + string SigFile, + const vector* IndexTargets, + indexRecords* MetaIndexParser); }; // Item class for archive files @@ -128,6 +221,7 @@ class pkgAcqArchive : public pkgAcquire::Item string &StoreFilename; pkgCache::VerFileIterator Vf; unsigned int Retries; + bool Trusted; // Queue the next available file for download. bool QueueNext(); @@ -136,10 +230,13 @@ class pkgAcqArchive : public pkgAcquire::Item // Specialized action members virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); - virtual void Done(string Message,unsigned long Size,string Md5Hash); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); virtual string MD5Sum() {return MD5;}; virtual string DescURI() {return Desc.URI;}; + virtual string ShortDesc() {return Desc.ShortDesc;}; virtual void Finished(); + virtual bool IsTrusted(); pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources, pkgRecords *Recs,pkgCache::VerIterator const &Version, @@ -150,13 +247,16 @@ class pkgAcqArchive : public pkgAcquire::Item class pkgAcqFile : public pkgAcquire::Item { pkgAcquire::ItemDesc Desc; - string MD5; + string Md5Hash; + unsigned int Retries; public: // Specialized action members - virtual void Done(string Message,unsigned long Size,string Md5Hash); - virtual string MD5Sum() {return MD5;}; + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string MD5Sum() {return Md5Hash;}; virtual string DescURI() {return Desc.URI;}; pkgAcqFile(pkgAcquire *Owner,string URI,string MD5,unsigned long Size,