diff options
author | Michael Vogt <mvo@debian.org> | 2014-01-26 08:15:29 +0100 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2014-01-26 08:15:29 +0100 |
commit | 796673c38509300c988fbba2f2679ba3c76916db (patch) | |
tree | 403055b486d0a1d65561528582d4b0bdc66e53a0 /methods/rsh.cc | |
parent | 9aef3908c892f9d9349d8bf8a5ceaeea313ba0fe (diff) | |
parent | 2f958de6e883ba7b0c9895750d4dde35047f1e82 (diff) |
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid
Conflicts:
apt-private/private-list.cc
doc/po/de.po
test/integration/framework
Diffstat (limited to 'methods/rsh.cc')
-rw-r--r-- | methods/rsh.cc | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/methods/rsh.cc b/methods/rsh.cc index d76dca6ef..a441220bf 100644 --- a/methods/rsh.cc +++ b/methods/rsh.cc @@ -20,7 +20,6 @@ #include <sys/stat.h> #include <sys/time.h> -#include <utime.h> #include <unistd.h> #include <signal.h> #include <stdio.h> @@ -395,13 +394,14 @@ void RSHMethod::SigTerm(int sig) { if (FailFd == -1) _exit(100); - close(FailFd); - // Timestamp - struct utimbuf UBuf; - UBuf.actime = FailTime; - UBuf.modtime = FailTime; - utime(FailFile.c_str(),&UBuf); + // Transfer the modification times + struct timespec times[2]; + times[0].tv_sec = FailTime; + times[1].tv_sec = FailTime; + times[0].tv_nsec = times[1].tv_nsec = 0; + futimens(FailFd, times); + close(FailFd); _exit(100); } @@ -488,10 +488,11 @@ bool RSHMethod::Fetch(FetchItem *Itm) Fd.Close(); // Timestamp - struct utimbuf UBuf; - UBuf.actime = FailTime; - UBuf.modtime = FailTime; - utime(FailFile.c_str(),&UBuf); + struct timespec times[2]; + times[0].tv_sec = FailTime; + times[1].tv_sec = FailTime; + times[0].tv_nsec = times[1].tv_nsec = 0; + futimens(FailFd, times); // If the file is missing we hard fail otherwise transient fail if (Missing == true) @@ -501,18 +502,17 @@ bool RSHMethod::Fetch(FetchItem *Itm) } Res.Size = Fd.Size(); + struct timespec times[2]; + times[0].tv_sec = FailTime; + times[1].tv_sec = FailTime; + times[0].tv_nsec = times[1].tv_nsec = 0; + futimens(Fd.Fd(), times); + FailFd = -1; } Res.LastModified = FailTime; Res.TakeHashes(Hash); - // Timestamp - struct utimbuf UBuf; - UBuf.actime = FailTime; - UBuf.modtime = FailTime; - utime(Queue->DestFile.c_str(),&UBuf); - FailFd = -1; - URIDone(Res); return true; |