From: Yehuda Sadeh Date: Tue, 15 Mar 2016 01:42:39 +0000 (-0700) Subject: rgw: fetch remote obj uses high def clock for if-[un]modified-since X-Git-Tag: v10.1.0~73^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0fd7c32a4c10ce3ff682ace2b337342fb501089f;p=ceph.git rgw: fetch remote obj uses high def clock for if-[un]modified-since Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_common.cc b/src/rgw/rgw_common.cc index 833f8c3a2847..62f02ed309af 100644 --- a/src/rgw/rgw_common.cc +++ b/src/rgw/rgw_common.cc @@ -471,12 +471,14 @@ int parse_key_value(string& in_str, string& key, string& val) int parse_time(const char *time_str, real_time *time) { struct tm tm; + uint32_t ns = 0; - if (!parse_rfc2616(time_str, &tm)) + if (!parse_rfc2616(time_str, &tm) && !parse_iso8601(time_str, &tm, &ns)) { return -EINVAL; + } time_t sec = timegm(&tm); - *time = utime_t(sec, 0).to_real_time(); + *time = utime_t(sec, ns).to_real_time(); return 0; } diff --git a/src/rgw/rgw_rest_conn.cc b/src/rgw/rgw_rest_conn.cc index c75f8ff3b736..2a8995b69935 100644 --- a/src/rgw/rgw_rest_conn.cc +++ b/src/rgw/rgw_rest_conn.cc @@ -102,7 +102,7 @@ static void set_date_header(const real_time *t, map& headers, co } stringstream s; utime_t tm = utime_t(*t); - tm.asctime(s); + tm.gmtime(s); headers[header_name] = s.str(); }