mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 12:41:00 +02:00
[MEDIUM] http request: make use of pre-parsed transfer-encoding header
This change should go a bit further. We should have a dedicated analyser to find and skip chunks.
This commit is contained in:
parent
03a5633299
commit
2225dd4421
@ -2764,7 +2764,6 @@ int http_process_request_body(struct session *s, struct buffer *req, int an_bit)
|
||||
struct http_msg *msg = &s->txn.req;
|
||||
unsigned long body = msg->sol[msg->eoh] == '\r' ? msg->eoh + 2 : msg->eoh + 1;
|
||||
long long limit = s->be->url_param_post_limit;
|
||||
struct hdr_ctx ctx;
|
||||
|
||||
if (unlikely(msg->msg_state != HTTP_MSG_BODY)) {
|
||||
/* we need more data */
|
||||
@ -2778,11 +2777,8 @@ int http_process_request_body(struct session *s, struct buffer *req, int an_bit)
|
||||
* related structures are ready.
|
||||
*/
|
||||
|
||||
ctx.idx = 0;
|
||||
|
||||
/* now if we have a length, we'll take the hint */
|
||||
http_find_header2("Transfer-Encoding", 17, msg->sol, &s->txn.hdr_idx, &ctx);
|
||||
if (ctx.idx && ctx.vlen >= 7 && strncasecmp(ctx.line+ctx.val, "chunked", 7) == 0) {
|
||||
if (s->txn.flags & TX_REQ_TE_CHNK) {
|
||||
unsigned int chunk = 0;
|
||||
while (body < req->l && !HTTP_IS_CRLF(msg->sol[body])) {
|
||||
char c = msg->sol[body];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user