diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-07 14:38:26 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-07 14:38:26 +0000 |
| commit | dbc8f5b737607db38399385e3b94f8dec9b3576c (patch) | |
| tree | 150969e8a16f152dad7ddd07f9ad259cf8ffe0fe /src/File.cc | |
| parent | 4e28efd925214dd60ddc02b8fa3a8c1128bc0fec (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.cc | 19 |
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 |
