X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/7db98ffceda347f0bc457c6bdc4ff33d60e26b18..a0e07f3ec885c12c733c12805391646c202f3f31:/methods/copy.cc?ds=sidebyside diff --git a/methods/copy.cc b/methods/copy.cc index d737e3c33..94467e054 100644 --- a/methods/copy.cc +++ b/methods/copy.cc @@ -9,9 +9,12 @@ ##################################################################### */ /*}}}*/ // Include Files /*{{{*/ +#include + #include #include #include +#include #include #include @@ -51,7 +54,7 @@ bool CopyMethod::Fetch(FetchItem *Itm) // See if the file exists FileFd From(File,FileFd::ReadOnly); - FileFd To(Itm->DestFile,FileFd::WriteEmpty); + FileFd To(Itm->DestFile,FileFd::WriteAtomic); To.EraseOnFailure(); if (_error->PendingError() == true) { @@ -79,6 +82,11 @@ bool CopyMethod::Fetch(FetchItem *Itm) return _error->Errno("utime",_("Failed to set modification time")); } + Hashes Hash; + FileFd Fd(Res.Filename, FileFd::ReadOnly); + Hash.AddFD(Fd.Fd(), Fd.Size()); + Res.TakeHashes(Hash); + URIDone(Res); return true; }