mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-12-09 11:41:00 +01:00
[MINOR] http: only consider chunk encoding with HTTP/1.1
This must be ignored in case of HTTP/1.0.
This commit is contained in:
parent
5b15447672
commit
9e13c3c630
@ -2100,9 +2100,9 @@ int http_wait_for_request(struct session *s, struct buffer *req, int an_bit)
|
||||
* required) if it wishes to insist on receiving a valid Content-Length.
|
||||
*/
|
||||
|
||||
/* FIXME: chunked encoding is HTTP/1.1 only */
|
||||
ctx.idx = 0;
|
||||
while (http_find_header2("Transfer-Encoding", 17, msg->sol, &txn->hdr_idx, &ctx)) {
|
||||
while ((txn->flags & TX_REQ_VER_11) &&
|
||||
http_find_header2("Transfer-Encoding", 17, msg->sol, &txn->hdr_idx, &ctx)) {
|
||||
if (ctx.vlen == 8 && strncasecmp(ctx.line + ctx.val, "identity", 8) == 0)
|
||||
continue;
|
||||
txn->flags |= TX_REQ_TE_CHNK;
|
||||
@ -2792,7 +2792,7 @@ int http_process_request_body(struct session *s, struct buffer *req, int an_bit)
|
||||
/* If we have HTTP/1.1 and Expect: 100-continue, then we must
|
||||
* send an HTTP/1.1 100 Continue intermediate response.
|
||||
*/
|
||||
if ((likely(msg->sl.rq.v_l == 8) && req->data[msg->som + msg->sl.rq.v + 7] == '1')) {
|
||||
if (txn->flags & TX_REQ_VER_11) {
|
||||
struct hdr_ctx ctx;
|
||||
ctx.idx = 0;
|
||||
/* Expect is allowed in 1.1, look for it */
|
||||
@ -3193,9 +3193,9 @@ int http_wait_for_response(struct session *s, struct buffer *rep, int an_bit)
|
||||
txn->status == 204 || txn->status == 304)
|
||||
goto skip_content_length;
|
||||
|
||||
/* FIXME: chunked encoding is HTTP/1.1 only */
|
||||
ctx.idx = 0;
|
||||
while (http_find_header2("Transfer-Encoding", 17, msg->sol, &txn->hdr_idx, &ctx)) {
|
||||
while ((txn->flags & TX_RES_VER_11) &&
|
||||
http_find_header2("Transfer-Encoding", 17, msg->sol, &txn->hdr_idx, &ctx)) {
|
||||
if (ctx.vlen == 8 && strncasecmp(ctx.line + ctx.val, "identity", 8) == 0)
|
||||
continue;
|
||||
txn->flags |= TX_RES_TE_CHNK;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user