Frames can still float in the following queues:
- crypto frames reordering queues (one per encryption level)
- moved crypto frames cleanup to the moment where all streams are closed
- stream frames reordering queues (one per packet number namespace)
- frames retransmit queues (one per packet number namespace)
if (qc) {
- for (i = 0; i < NGX_QUIC_ENCRYPTION_LAST; i++) {
- ngx_quic_free_frames(c, &qc->crypto[i].frames);
- }
-
qc->closing = 1;
tree = &qc->streams.tree;
return;
}
+ for (i = 0; i < NGX_QUIC_ENCRYPTION_LAST; i++) {
+ ngx_quic_free_frames(c, &qc->crypto[i].frames);
+ }
+
+ for (i = 0; i < NGX_QUIC_SEND_CTX_LAST; i++) {
+ ngx_quic_free_frames(c, &qc->send_ctx[i].frames);
+ ngx_quic_free_frames(c, &qc->send_ctx[i].sent);
+ }
+
if (qc->push.timer_set) {
ngx_del_timer(&qc->push);
}