From 349a0f62b58c715adc7dea9b6a865232d5f322df Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 18 Oct 2009 21:17:42 +0200 Subject: [PATCH] [MINOR] http request: simplify the test of no-data Now we can rely on (chunked && !hdr_content_len) to stop forwarding data. We only do that for known methods that are not CONNECT though. --- src/proto_http.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/proto_http.c b/src/proto_http.c index 5fd52117d..a7b297533 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -2390,16 +2390,9 @@ int http_process_req_common(struct session *s, struct buffer *req, int an_bit, s } /* We can shut read side if "connection: close" && !abort_on_close && !content-length */ - if ((txn->meth == HTTP_METH_GET || txn->meth == HTTP_METH_HEAD) && - (s->flags & SN_CONN_CLOSED) && !(s->be->options & PR_O_ABRT_CLOSE)) { - struct hdr_ctx ctx; - ctx.idx = 0; - if (!http_find_header2("Transfer-Encoding", 17, msg->sol, &txn->hdr_idx, &ctx)) { - ctx.idx = 0; - if (!http_find_header2("Content-length", 14, msg->sol, &txn->hdr_idx, &ctx)) - req->flags |= BF_DONT_READ; - } - } + if ((s->flags & SN_CONN_CLOSED) && !(s->be->options & PR_O_ABRT_CLOSE) && + !(txn->flags & TX_REQ_TE_CHNK) && !txn->req.hdr_content_len && (txn->meth < HTTP_METH_CONNECT)) + req->flags |= BF_DONT_READ; /* that's OK for us now, let's move on to next analysers */ return 1;