diff options
author | Robert Newson <rnewson@apache.org> | 2012-08-15 22:32:15 +0100 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2012-08-15 22:32:29 +0100 |
commit | 445e9190fc25e64d7f9d121cb2d2945743a02843 (patch) | |
tree | d44dab9fb1f497297ae0e672a02118c628a55d3c | |
parent | b59ac98b4be8d8c9e3f1114dd0a785f0f4dd30d1 (diff) | |
download | couchdb-445e9190fc25e64d7f9d121cb2d2945743a02843.tar.gz |
Support all timezones for R14 series
-rw-r--r-- | src/mochiweb/mochiweb_request.erl | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/mochiweb/mochiweb_request.erl b/src/mochiweb/mochiweb_request.erl index 2bc54c081..dfd439da9 100644 --- a/src/mochiweb/mochiweb_request.erl +++ b/src/mochiweb/mochiweb_request.erl @@ -600,7 +600,7 @@ maybe_redirect(RelPath, FullPath, ExtraHeaders) -> end. maybe_serve_file(File, ExtraHeaders) -> - case file:read_file_info(File, [{time, universal}]) of + case read_file_info(File) of {ok, FileInfo} -> LastModified = couch_util:rfc1123_date(FileInfo#file_info.mtime), case get_header_value("if-modified-since") of @@ -624,6 +624,25 @@ maybe_serve_file(File, ExtraHeaders) -> not_found(ExtraHeaders) end. +read_file_info(File) -> + try + file:read_file_info(File, [{time, universal}]) + catch error:undef -> + case file:read_file_info(File) of + {ok, FileInfo} -> + {ok, FileInfo#file_info{ + atime=to_universal(FileInfo#file_info.atime), + mtime=to_universal(FileInfo#file_info.mtime), + ctime=to_universal(FileInfo#file_info.ctime) + }}; + Else -> + Else + end + end. + +to_universal(LocalTime) -> + calendar:local_time_to_universal_time(LocalTime). + server_headers() -> [{"Server", "MochiWeb/1.0 (" ++ ?QUIP ++ ")"}, {"Date", couch_util:rfc1123_date()}]. |