]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Fix casing of Content-Type header 5532/head
authorRobin H. Johnson <robin.johnson@dreamhost.com>
Fri, 4 Sep 2015 01:07:48 +0000 (01:07 +0000)
committerNathan Cutler <ncutler@suse.com>
Thu, 8 Oct 2015 08:56:55 +0000 (10:56 +0200)
It turns out, despite the HTTP spec declaring that header field names
should be case-insensitive, some clients treat them wrongly, and
consider "Content-type" to not match "Content-Type".

CyberDuck was one of those clients, now fixed upstream in
https://trac.cyberduck.io/ticket/8999

To reduce future occurances of this bug, fix the casing of the
Content-Type header, to strictly comply with the HTTP specification (be
strict about what you send, and generous about what you receive).

Fixes: #12939
Backport: hammer, firefly
Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
(cherry picked from commit 1b9fbffdc24160251b96cec820d62fb2a12b6eab)

src/rgw/rgw_rest.cc

index 083fa832eec0f70dcbd557d6c1d000a8023a0786..b77e6f74442c3d1024de1f3a9579598da538b7ae 100644 (file)
@@ -475,7 +475,7 @@ void end_header(struct req_state *s, RGWOp *op, const char *content_type, const
 
   int r;
   if (content_type) {
-      r = s->cio->print("Content-type: %s\r\n", content_type);
+      r = s->cio->print("Content-Type: %s\r\n", content_type);
       if (r < 0) {
        ldout(s->cct, 0) << "ERROR: s->cio->print() returned err=" << r << dendl;
       }