X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/8171c75b9939a13aa22a3f45d436a6305af561ff..23397c9d7d4d455461176600bb45c81185493504:/apt-pkg/indexrecords.h diff --git a/apt-pkg/indexrecords.h b/apt-pkg/indexrecords.h index ac0df470c..88a06779c 100644 --- a/apt-pkg/indexrecords.h +++ b/apt-pkg/indexrecords.h @@ -5,48 +5,92 @@ #ifndef PKGLIB_INDEXRECORDS_H #define PKGLIB_INDEXRECORDS_H - -#include -#include +#include #include #include +#include +#include + +#ifndef APT_8_CLEANER_HEADERS +#include +#endif +#ifndef APT_10_CLEANER_HEADERS +#include +#endif class indexRecords { - bool parseSumData(const char *&Start, const char *End, string &Name, - string &Hash, size_t &Size); + APT_HIDDEN bool parseSumData(const char *&Start, const char *End, std::string &Name, + std::string &Hash, unsigned long long &Size); public: struct checkSum; - string ErrorText; - + std::string ErrorText; + + private: + enum APT_HIDDEN { ALWAYS_TRUSTED, NEVER_TRUSTED, CHECK_TRUST } Trusted; + // dpointer (for later) + void * d; + protected: - string Dist; - string Suite; - string ExpectedDist; - std::map Entries; + std::string Dist; + std::string Suite; + std::string ExpectedDist; + time_t ValidUntil; + bool SupportsAcquireByHash; + + std::map Entries; public: - indexRecords(); - indexRecords(const string ExpectedDist); + indexRecords(const std::string &ExpectedDist = ""); // Lookup function - virtual const checkSum *Lookup(const string MetaKey); + virtual checkSum *Lookup(const std::string MetaKey); + /** \brief tests if a checksum for this file is available */ + bool Exists(std::string const &MetaKey) const; std::vector MetaKeys(); - virtual bool Load(string Filename); - string GetDist() const; - virtual bool CheckDist(const string MaybeDist) const; - string GetExpectedDist() const; - virtual ~indexRecords(){}; + virtual bool Load(std::string Filename); + virtual bool CheckDist(const std::string MaybeDist) const; + + std::string GetDist() const; + std::string GetSuite() const; + bool GetSupportsAcquireByHash() const; + time_t GetValidUntil() const; + std::string GetExpectedDist() const; + + /** \brief check if source is marked as always trusted */ + bool IsAlwaysTrusted() const; + /** \brief check if source is marked as never trusted */ + bool IsNeverTrusted() const; + + /** \brief sets an explicit trust value + * + * \b true means that the source should always be considered trusted, + * while \b false marks a source as always untrusted, even if we have + * a valid signature and everything. + */ + void SetTrusted(bool const Trusted); + + virtual ~indexRecords(); }; +#if __GNUC__ >= 4 + // ensure that con- & de-structor don't trigger this warning + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif struct indexRecords::checkSum { - string MetaKeyFilename; - string MD5Hash; - size_t Size; + std::string MetaKeyFilename; + HashStringList Hashes; + unsigned long long Size; + + APT_DEPRECATED HashString Hash; }; +#if __GNUC__ >= 4 + #pragma GCC diagnostic pop +#endif #endif