BUG/MINOR: h3: release resources on close
Implement the release app-ops ops for H3 layer. This is used to clean up
uni-directional streams and the h3 context.
This prevents a memory leak on H3 resources for each connection.
diff --git a/src/h3.c b/src/h3.c
index 463c131..4d373f5 100644
--- a/src/h3.c
+++ b/src/h3.c
@@ -892,6 +892,15 @@
return 0;
}
+static void h3_release(void *ctx)
+{
+ struct h3 *h3 = ctx;
+
+ h3_uqs_release_all(h3);
+ h3_uqs_tasklets_release(h3);
+ pool_free(pool_head_h3, h3);
+}
+
/* HTTP/3 application layer operations */
const struct qcc_app_ops h3_ops = {
.init = h3_init,
@@ -899,4 +908,5 @@
.decode_qcs = h3_decode_qcs,
.snd_buf = h3_snd_buf,
.finalize = h3_finalize,
+ .release = h3_release,
};