MINOR: compression: Use a memory pool to allocate compression states

Instead of doing a malloc/free to each HTTP transaction to allocate the
compression state (when the HTTP compression is enabled), we use a memory pool.
diff --git a/src/flt_http_comp.c b/src/flt_http_comp.c
index 54ffeed..64c669d 100644
--- a/src/flt_http_comp.c
+++ b/src/flt_http_comp.c
@@ -32,6 +32,10 @@
 
 struct flt_ops comp_ops;
 
+
+/* Pools used to allocate comp_state structs */
+static struct pool_head *pool2_comp_state = NULL;
+
 static struct buffer *tmpbuf = &buf_empty;
 static struct buffer *zbuf   = &buf_empty;
 
@@ -87,7 +91,8 @@
 	if (filter->ctx == NULL) {
 		struct comp_state *st;
 
-		if (!(st = malloc(sizeof(*st))))
+		st = pool_alloc_dirty(pool2_comp_state);
+		if (st == NULL)
 			return -1;
 
 		st->comp_algo   = NULL;
@@ -113,7 +118,7 @@
 	/* release any possible compression context */
 	if (st->comp_algo)
 		st->comp_algo->end(&st->comp_ctx);
-	free(st);
+	pool_free2(pool2_comp_state, st);
 	filter->ctx = NULL;
  end:
 	return 1;
@@ -966,4 +971,5 @@
 	cfg_register_keywords(&cfg_kws);
 	flt_register_keywords(&filter_kws);
 	sample_register_fetches(&sample_fetch_keywords);
+	pool2_comp_state = create_pool("comp_state", sizeof(struct comp_state), MEM_F_SHARED);
 }