summaryrefslogtreecommitdiff
path: root/skip/ceph/11-s3_expiration_header.patch
blob: ac12a83355675571aa45c2d5801c81f7157f0752 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Patch by Robin Mueller

Fix musl date handling

--- a/src/rgw/rgw_lc.cc	2021-09-16 16:27:19.000000000 +0200
+++ b/src/rgw/rgw_lc.cc	2021-10-01 09:17:06.996639952 +0200
@@ -2238,8 +2238,21 @@
     // Fri, 23 Dec 2012 00:00:00 GMT
     char exp_buf[100];
     time_t exp = ceph::real_clock::to_time_t(*expiration_date);
-    if (std::strftime(exp_buf, sizeof(exp_buf),
-		      "%a, %d %b %Y %T %Z", std::gmtime(&exp))) {
+    std::size_t len = std::strftime(exp_buf, sizeof(exp_buf), "%a, %d %b %Y %T %Z", std::gmtime(&exp));
+
+    if (len) {
+      int position = 0;
+      while (exp_buf[position] != 'U' && len - position > 3)
+        position++;
+
+      if (len - position == 3) {
+        char substr[4];
+        memcpy(substr, &exp_buf[position], 4);
+
+        if (strcmp(substr, "UTC") == 0)
+          memcpy(&exp_buf[position], "GMT", 3);
+      }
+
       hdr = fmt::format("expiry-date=\"{0}\", rule-id=\"{1}\"", exp_buf,
 			*rule_id);
     } else {