MINOR: http: create a dedicated pool for http_txn
This one will not necessarily be allocated for each stream, and we want
to use the fact that it equals null to know it's not present so that we
can always deduce its presence from the stream pointer.
This commit only creates the new pool.
diff --git a/src/haproxy.c b/src/haproxy.c
index 4510375..b2f3e36 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1443,6 +1443,7 @@
pool_destroy2(pool2_pendconn);
pool_destroy2(pool2_sig_handlers);
pool_destroy2(pool2_hdr_idx);
+ pool_destroy2(pool2_http_txn);
if (have_appsession) {
pool_destroy2(apools.serverid);
diff --git a/src/proto_http.c b/src/proto_http.c
index fac05b7..8bd6b5e 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -326,6 +326,7 @@
FD_SET(0x7f, http_encode_map);
/* memory allocations */
+ pool2_http_txn = create_pool("http_txn", sizeof(struct http_txn), MEM_F_SHARED);
pool2_requri = create_pool("requri", REQURI_LEN, MEM_F_SHARED);
pool2_uniqueid = create_pool("uniqueid", UNIQUEID_LEN, MEM_F_SHARED);
}
@@ -1087,6 +1088,7 @@
extern const char sess_term_cond[8];
extern const char sess_fin_state[8];
extern const char *monthname[12];
+struct pool_head *pool2_http_txn;
struct pool_head *pool2_requri;
struct pool_head *pool2_capture = NULL;
struct pool_head *pool2_uniqueid;
diff --git a/src/stream.c b/src/stream.c
index d28684e..cd0f8bd 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -680,6 +680,7 @@
/* We may want to free the maximum amount of pools if the proxy is stopping */
if (fe && unlikely(fe->state == PR_STSTOPPED)) {
pool_flush2(pool2_buffer);
+ pool_flush2(pool2_http_txn);
pool_flush2(pool2_hdr_idx);
pool_flush2(pool2_requri);
pool_flush2(pool2_capture);