diff --git a/src/rgw/rgw_civetweb.cc b/src/rgw/rgw_civetweb.cc index 089250fd4f7ac8..827709b993b342 100644 --- a/src/rgw/rgw_civetweb.cc +++ b/src/rgw/rgw_civetweb.cc @@ -152,6 +152,20 @@ int RGWMongoose::send_100_continue() return mg_write(conn, buf, sizeof(buf) - 1); } +static void dump_date_header(bufferlist &out) +{ + char timestr[TIME_BUF_SIZE]; + const time_t gtime = time(NULL); + struct tm result; + struct tm const * const tmp = gmtime_r(>ime, &result); + + if (tmp == NULL) + return; + + if (strftime(timestr, sizeof(timestr), "Date: %a, %d %b %Y %H:%M:%S %Z\r\n", tmp)) + out.append(timestr); +} + int RGWMongoose::complete_header() { header_done = true; @@ -160,6 +174,8 @@ int RGWMongoose::complete_header() return 0; } + dump_date_header(header_data); + if (explicit_keepalive) header_data.append("Connection: Keep-Alive\r\n"); diff --git a/src/rgw/rgw_civetweb.h b/src/rgw/rgw_civetweb.h index 9a7594fe8fb633..29113288595562 100644 --- a/src/rgw/rgw_civetweb.h +++ b/src/rgw/rgw_civetweb.h @@ -3,6 +3,7 @@ #ifndef CEPH_RGW_MONGOOSE_H #define CEPH_RGW_MONGOOSE_H +#define TIME_BUF_SIZE 128 #include "rgw_client_io.h"