aptmethod.h 933 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef APT_APTMETHOD_H
  2. #define APT_APTMETHOD_H
  3. #include <apt-pkg/acquire-method.h>
  4. #include <string>
  5. class aptMethod : public pkgAcqMethod
  6. {
  7. char const * const Binary;
  8. public:
  9. virtual bool Configuration(std::string Message) APT_OVERRIDE;
  10. bool CalculateHashes(FetchItem const * const Itm, FetchResult &Res) const;
  11. aptMethod(char const * const Binary, char const * const Ver, unsigned long const Flags) : pkgAcqMethod(Ver, Flags), Binary(Binary) {};
  12. };
  13. bool aptMethod::Configuration(std::string Message)
  14. {
  15. if (pkgAcqMethod::Configuration(Message) == false)
  16. return false;
  17. DropPrivsOrDie();
  18. return true;
  19. }
  20. bool aptMethod::CalculateHashes(FetchItem const * const Itm, FetchResult &Res) const
  21. {
  22. Hashes Hash(Itm->ExpectedHashes);
  23. FileFd Fd;
  24. if (Fd.Open(Res.Filename, FileFd::ReadOnly) == false || Hash.AddFD(Fd) == false)
  25. return false;
  26. Res.TakeHashes(Hash);
  27. return true;
  28. }
  29. #endif