diff options
author | Michael Vogt <mvo@debian.org> | 2014-05-07 18:10:01 +0200 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2014-05-07 18:10:01 +0200 |
commit | 41a658f873a36e2f8507a84fb40f0632e2a62b15 (patch) | |
tree | 1acf5649b42fe6142a2b436ef6a89429659f05e6 /ftparchive/sources.cc | |
parent | 48127e85281e3e75d9aa60abca97f7c5c2c92fad (diff) | |
parent | cf6bbca0a93b21ab7d3378f26dd9b57951a1d987 (diff) |
Merge remote-tracking branch 'mvo/feature/apt-ftparchive-srccache2' into debian/sid
Diffstat (limited to 'ftparchive/sources.cc')
-rw-r--r-- | ftparchive/sources.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ftparchive/sources.cc b/ftparchive/sources.cc new file mode 100644 index 000000000..d0878a70a --- /dev/null +++ b/ftparchive/sources.cc @@ -0,0 +1,47 @@ +#include <string> +#include <iostream> + +// for memcpy +#include <cstring> + +#include <apt-pkg/error.h> +#include <apt-pkg/gpgv.h> + +#include "sources.h" + +bool DscExtract::TakeDsc(const void *newData, unsigned long newSize) +{ + if(newSize > maxSize) + return _error->Error("DSC data is too large %lu!", newSize); + + if (newSize == 0) + { + Length = 0; + return true; + } + memcpy(Data, newData, newSize); + Length = newSize; + + return true; +} + +bool DscExtract::Read(std::string FileName) +{ + FileFd F; + if (OpenMaybeClearSignedFile(FileName, F) == false) + return false; + + unsigned long long const FSize = F.FileSize(); + if(FSize > maxSize) + return _error->Error("DSC file '%s' is too large!",FileName.c_str()); + + if (F.Read(Data, FSize) == false) + return false; + Length = FSize; + + IsClearSigned = (FileName != F.Name()); + + return true; +} + + |