From 425b3287261813534566e1354a2b62d28fa49bf8 Mon Sep 17 00:00:00 2001 From: lvshanchun Date: Thu, 23 Nov 2017 16:41:44 +0800 Subject: [PATCH] rgw: use GMT time format defined by RFC1123 in http request header Signed-off-by: lvshanchun --- src/rgw/rgw_rest_client.cc | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_rest_client.cc b/src/rgw/rgw_rest_client.cc index 4a8dcd1b437..e1d0dfe5f13 100644 --- a/src/rgw/rgw_rest_client.cc +++ b/src/rgw/rgw_rest_client.cc @@ -104,6 +104,20 @@ static void get_new_date_str(string& date_str) date_str = rgw_to_asctime(ceph_clock_now()); } +static void get_gmt_date_str(string& date_str) +{ + auto now_time = ceph::real_clock::now(); + time_t rawtime = ceph::real_clock::to_time_t(now_time); + + char buffer[80]; + + struct tm timeInfo; + gmtime_r(&rawtime, &timeInfo); + strftime(buffer, sizeof(buffer), "%a, %d %b %Y %H:%M:%S %z", &timeInfo); + + date_str = buffer; +} + int RGWRESTSimpleRequest::execute(RGWAccessKey& key, const char *_method, const char *resource) { method = _method; @@ -431,7 +445,7 @@ void RGWRESTStreamS3PutObj::send_init(rgw_obj& obj) new_url.append("/"); string date_str; - get_new_date_str(date_str); + get_gmt_date_str(date_str); string params_str; map& args = new_info.args.get_params(); @@ -588,7 +602,7 @@ int RGWRESTStreamRWRequest::send_prepare(RGWAccessKey *key, map& new_url.append("/"); string date_str; - get_new_date_str(date_str); + get_gmt_date_str(date_str); RGWEnv new_env; req_info new_info(cct, &new_env); -- 2.39.5