aboutsummaryrefslogtreecommitdiffstats
path: root/community/ceph17/11-dump_time_header_impl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/ceph17/11-dump_time_header_impl.patch')
-rw-r--r--community/ceph17/11-dump_time_header_impl.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/community/ceph17/11-dump_time_header_impl.patch b/community/ceph17/11-dump_time_header_impl.patch
new file mode 100644
index 00000000000..d19e7ed596a
--- /dev/null
+++ b/community/ceph17/11-dump_time_header_impl.patch
@@ -0,0 +1,34 @@
+Patch by Robin Mueller
+
+The strftime method of the libmusl writes 'UTC' instead of 'GMT' when
+the character Z is used in the format pattern, and it looks like the
+S3 clients don't like 'UTC' in the date strings.
+
+This patch replaces 'UTC' with 'GMT' at the relevant location.
+
+--- a/src/rgw/rgw_rest.cc 2021-07-08 16:03:56.000000000 +0200
++++ b/src/rgw/rgw_rest.cc 2021-08-19 09:48:30.339492024 +0200
+@@ -436,8 +436,21 @@
+ return 0;
+ }
+
+- return strftime(timestr, sizeof(timestr),
+- "%a, %d %b %Y %H:%M:%S %Z", tmp);
++ size_t len = strftime(timestr, sizeof(timestr),
++ "%a, %d %b %Y %H:%M:%S %Z", tmp);
++
++ int position = 0;
++ while (timestr[position] != 'U' && len - position > 3)
++ position++;
++
++ if (len - position == 3) {
++ char substr[4];
++ memcpy(substr, &timestr[position], 4);
++
++ if (strcmp(substr, "UTC") == 0)
++ memcpy(&timestr[position], "GMT", 3);
++ }
++ return len;
+ }
+
+ void dump_time_header(struct req_state *s, const char *name, real_time t)