From: Matthew Oliver Date: Thu, 14 May 2020 01:31:56 +0000 (+1000) Subject: rgw: S3 Put Bucket Policy should return 204 on success X-Git-Tag: v14.2.17~87^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F38623%2Fhead;p=ceph.git rgw: S3 Put Bucket Policy should return 204 on success Currently RGW returns a 200 on a successful PUT on a bucket policy but the S3 api extects a 204, which makes sense as it's a success without any contect returned: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html The sample response in the example above is a 204. This patch checks the op_ret in `RGWPutBucketPolicy::send_response()` and on a success we turn it to a 204 (or STATUS_NO_CONTENT). Fixes: https://tracker.ceph.com/issues/45467 Signed-off-by: Matthew Oliver (cherry picked from commit 7fddff78c98ef9a3c73581b892c7dfa04b64cdb3) --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 9ca7e1cfb821..5a19feedb10d 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -7500,6 +7500,10 @@ void RGWDefaultResponseOp::send_response() { void RGWPutBucketPolicy::send_response() { + if (!op_ret) { + /* A successful Put Bucket Policy should return a 204 on success */ + op_ret = STATUS_NO_CONTENT; + } if (op_ret) { set_req_state_err(s, op_ret); }