Skip to content

Commit

Permalink
rgw: force content-type header for swift account responses without body
Browse files Browse the repository at this point in the history
This regression was introduced in commit 4cfeca0

Fixes: #11438

Signed-off-by: Orit Wasserman <owasserm@redhat.com>
  • Loading branch information
oritwas committed Apr 21, 2015
1 parent ba5a880 commit 009664e
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 5 deletions.
5 changes: 3 additions & 2 deletions src/rgw/rgw_rest.cc
Expand Up @@ -494,7 +494,8 @@ void dump_start(struct req_state *s)
}
}

void end_header(struct req_state *s, RGWOp *op, const char *content_type, const int64_t proposed_content_length)
void end_header(struct req_state *s, RGWOp *op, const char *content_type, const int64_t proposed_content_length,
bool force_content_type)
{
string ctype;

Expand All @@ -504,7 +505,7 @@ void end_header(struct req_state *s, RGWOp *op, const char *content_type, const

/* do not send content type if content length is zero
and the content type was not set by the user */
if ((s->formatter->get_len() != 0 && !content_type) || s->err.is_err()){
if (force_content_type || (!content_type && s->formatter->get_len() != 0) || s->err.is_err()){
switch (s->format) {
case RGW_FORMAT_XML:
ctype = "application/xml";
Expand Down
3 changes: 2 additions & 1 deletion src/rgw/rgw_rest.h
Expand Up @@ -365,7 +365,8 @@ extern void dump_errno(struct req_state *s, int ret);
extern void end_header(struct req_state *s,
RGWOp *op = NULL,
const char *content_type = NULL,
const int64_t proposed_content_length = NO_CONTENT_LENGTH);
const int64_t proposed_content_length = NO_CONTENT_LENGTH,
bool force_content_type = false);
extern void dump_start(struct req_state *s);
extern void list_all_buckets_start(struct req_state *s);
extern void dump_owner(struct req_state *s, string& id, string& name, const char *section = NULL);
Expand Down
5 changes: 3 additions & 2 deletions src/rgw/rgw_rest_swift.cc
Expand Up @@ -80,7 +80,7 @@ void RGWListBuckets_ObjStore_SWIFT::send_response_begin(bool has_buckets)
/* Adding account stats in the header to keep align with Swift API */
dump_account_metadata(s, buckets_count, buckets_objcount, buckets_size, buckets_size_rounded);
dump_errno(s);
end_header(s, NULL);
end_header(s, NULL, NULL, true);

if (!ret) {
dump_start(s);
Expand Down Expand Up @@ -307,7 +307,8 @@ void RGWStatAccount_ObjStore_SWIFT::send_response()
set_req_state_err(s, ret);
dump_errno(s);

end_header(s, NULL, NULL, 0);
end_header(s, NULL, NULL, 0, true);

dump_start(s);
}

Expand Down

0 comments on commit 009664e

Please sign in to comment.