From: William Lallemand Date: Thu, 22 Nov 2012 16:55:14 +0000 (+0100) Subject: BUG/MEDIUM: compression: does not forward trailers X-Git-Tag: v1.5-dev14~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=00bf1dee9c76ec4df4a22e13072ee12c64d8d187;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: compression: does not forward trailers The commit bf3ae617 introduced a regression about the forward of the trailers in compression mode. --- diff --git a/src/compression.c b/src/compression.c index 3622d4091c..fd5f7901ef 100644 --- a/src/compression.c +++ b/src/compression.c @@ -298,10 +298,6 @@ int http_compression_buffer_end(struct session *s, struct buffer **in, struct bu /* forward the new chunk without remaining data */ b_adv(ob, to_forward); - /* if there are data between p and next, there are trailers, must forward them */ - b_adv(ob, msg->next); - msg->next = 0; - return to_forward; } diff --git a/src/proto_http.c b/src/proto_http.c index b82d45319b..aea1ec22f0 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -5691,7 +5691,12 @@ int http_response_forward_body(struct session *s, struct channel *res, int an_bi http_capture_bad_message(&s->be->invalid_rep, s, msg, HTTP_MSG_TRAILERS, s->fe); goto return_bad_res; } - /* we're in HTTP_MSG_DONE now */ + if (s->comp_algo != NULL) { + /* forwarding trailers */ + channel_forward(res, msg->next); + msg->next = 0; + } + /* we're in HTTP_MSG_DONE now */ } else { int old_state = msg->msg_state;