From 7cbb63bb748c4c78c02926acb4ad9bcea5593695 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sun, 17 Apr 2016 08:23:23 -0700 Subject: [PATCH] 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 --- src/rgw/rgw_rest_s3.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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); -- 2.47.3