MEDIUM: session: do not free a session until no stream references it
We now refrain from clearing a session's variables, counters, and from
releasing it as long as at least one stream references it. For now it
never happens but with H2 this will be mandatory to avoid double frees.
diff --git a/src/session.c b/src/session.c
index a226559..06d3000 100644
--- a/src/session.c
+++ b/src/session.c
@@ -68,6 +68,8 @@
void session_free(struct session *sess)
{
+ if (!LIST_ISEMPTY(&sess->streams))
+ return;
session_store_counters(sess);
vars_prune_per_sess(&sess->vars);
pool_free2(pool2_session, sess);