summaryrefslogtreecommitdiff
path: root/src/File.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-07 14:38:26 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-07 14:38:26 +0000
commitdbc8f5b737607db38399385e3b94f8dec9b3576c (patch)
tree150969e8a16f152dad7ddd07f9ad259cf8ffe0fe /src/File.cc
parent4e28efd925214dd60ddc02b8fa3a8c1128bc0fec (diff)
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implemented the ability to get timestamp from remote HTTP server and apply it to local file. To enable this feature, --remote-time option is added. No usage text has been written yet. If several servers returns difference timestamp, then aria2 uses latest one. * src/CopyDiskAdaptor.cc * src/CopyDiskAdaptor.h * src/DirectDiskAdaptor.cc * src/DirectDiskAdaptor.h * src/DiskAdaptor.h * src/File.cc * src/File.h * src/HttpHeader.cc * src/HttpHeader.h * src/HttpResponse.cc * src/HttpResponse.h * src/HttpResponseCommand.cc * src/HttpResponseCommand.h * src/MultiDiskAdaptor.cc * src/MultiDiskAdaptor.h * src/OptionHandlerFactory.cc * src/RequestGroup.cc * src/RequestGroup.h * src/RequestGroupMan.cc * src/option_processing.cc * src/prefs.cc * src/prefs.h * test/CopyDiskAdaptorTest.cc * test/FileTest.cc * test/Makefile.am * test/Makefile.in * test/MultiDiskAdaptorTest.cc * test/TestUtil.cc
Diffstat (limited to 'src/File.cc')
-rw-r--r--src/File.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/File.cc b/src/File.cc
index ed41b450..e4ca5b69 100644
--- a/src/File.cc
+++ b/src/File.cc
@@ -38,6 +38,8 @@
#include <cstring>
#include <stdlib.h>
#include <deque>
+#include <sys/types.h>
+#include <utime.h>
namespace aria2 {
@@ -178,4 +180,21 @@ bool File::renameTo(const std::string& dest)
}
}
+bool File::utime(const Time& actime, const Time& modtime) const
+{
+ struct utimbuf ub;
+ ub.actime = actime.getTime();
+ ub.modtime = modtime.getTime();
+ return ::utime(name.c_str(), &ub) == 0;
+}
+
+Time File::getModifiedTime()
+{
+ a2_struct_stat fstat;
+ if(fillStat(fstat) < 0) {
+ return 0;
+ }
+ return Time(fstat.st_mtime);
+}
+
} // namespace aria2