From: Robin H. Johnson Date: Sun, 17 Apr 2016 15:23:23 +0000 (-0700) Subject: rgw/s3website: Fix x-amz-website-redirect-location support. X-Git-Tag: v11.0.0~588^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F8633%2Fhead;p=ceph.git rgw/s3website: Fix x-amz-website-redirect-location support. Support for the x-amz-website-redirect-location header was broken in the feature merging of Jewel, as it previously depended on the error handler to redirect, which was overkill. Simplify it to work. Backport: jewel Fixes: http://tracker.ceph.com/issues/15531 Signed-off-by: Robin H. Johnson --- diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 2ef10a5ed742..1611e0633f88 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -92,8 +92,13 @@ int RGWGetObj_ObjStore_S3Website::send_response_data(bufferlist& bl, off_t bl_of bufferlist &bl = iter->second; s->redirect = string(bl.c_str(), bl.length()); s->err.http_ret = 301; - ldout(s->cct, 20) << __CEPH_ASSERT_FUNCTION << " redirectng per x-amz-website-redirect-location=" << s->redirect << dendl; + ldout(s->cct, 20) << __CEPH_ASSERT_FUNCTION << " redirecting per x-amz-website-redirect-location=" << s->redirect << dendl; op_ret = -ERR_WEBSITE_REDIRECT; + set_req_state_err(s, op_ret); + dump_errno(s); + dump_content_length(s, 0); + dump_redirect(s, s->redirect); + end_header(s, this); return op_ret; } else { return RGWGetObj_ObjStore_S3::send_response_data(bl, bl_ofs, bl_len);