mirror of
https://github.com/ukui/apt.git
synced 2026-03-09 09:35:45 -07:00
23e64f6d0f
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.
43 lines
978 B
C++
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
|