From bf2886274c38c281d8b3c9d9ad92b61bbcb2c503 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 10 Jul 2009 23:52:51 +0200 Subject: [PATCH] [MINOR] http: rely on proxy->acl_requires to allocate hdr_idx Right now only HTTP proxies may use HTTP headers in ACLs, but when this evolves, we'll need to be able to allocate the hdr_idx on demand. The solution consists in allocating it only when it is certain that at least one ACL requires HTTP parsing, regardless of the mode the proxy is in. This is what is achieved by this patch. --- src/client.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/client.c b/src/client.c index abf4d351a7..cfd41e0e41 100644 --- a/src/client.c +++ b/src/client.c @@ -281,8 +281,13 @@ int event_accept(int fd) { memset(txn->rsp.cap, 0, p->nb_rsp_cap*sizeof(char *)); } + } - + if (p->acl_requires & ACL_USE_L7_ANY) { + /* we have to allocate header indexes only if we know + * that we may make use of them. This of course includes + * (mode == PR_MODE_HTTP). + */ txn->hdr_idx.size = MAX_HTTP_HDR; if ((txn->hdr_idx.v = pool_alloc2(p->hdr_idx_pool)) == NULL) -- 2.47.3