Files
apt/methods/aptmethod.h
T
David Kalnischkies 23e64f6d0f allow acquire method specific options via Binary scope
Allows users who know what they are getting themselves into with this
trick to e.g. disable privilege dropping for e.g. file:// until they can
fix up the permissions on those repositories. It helps also the test
framework and people with a similar setup (= me) to run in less modified
environments.
2015-11-05 12:21:33 +01:00

43 lines
978 B
C++

#ifndef APT_APTMETHOD_H
#define APT_APTMETHOD_H
#include <apt-pkg/acquire-method.h>
#include <apt-pkg/configuration.h>
#include <string>
class aptMethod : public pkgAcqMethod
{
char const * const Binary;
public:
virtual bool Configuration(std::string Message) APT_OVERRIDE
{
if (pkgAcqMethod::Configuration(Message) == false)
return false;
std::string const conf = std::string("Binary::") + Binary;
_config->MoveSubTree(conf.c_str(), NULL);
DropPrivsOrDie();
return true;
}
bool CalculateHashes(FetchItem const * const Itm, FetchResult &Res) const
{
Hashes Hash(Itm->ExpectedHashes);
FileFd Fd;
if (Fd.Open(Res.Filename, FileFd::ReadOnly) == false || Hash.AddFD(Fd) == false)
return false;
Res.TakeHashes(Hash);
return true;
}
aptMethod(char const * const Binary, char const * const Ver, unsigned long const Flags) :
pkgAcqMethod(Ver, Flags), Binary(Binary)
{}
};
#endif