The "connection close state" TX buffer is used to build the datagram with
basically a CONNECTION_CLOSE frame to notify the peer about the connection
closure. It allows the quic_conn memory release and its replacement by a lighter
quic_cc_conn struct.
For the QUIC backend, there is a dedicated pool to build such datagrams from
bigger TX buffers. But from quic_conn_release(), this is the pool dedicated
to the QUIC frontends which was used to release the QUIC backend TX buffers.
This patch simply adds a test about the target of the connection to release
the "connection close state" TX buffers from the correct pool.
No backport needed.
free_quic_conn_cids(qc);
pool_free(pool_head_quic_cids, qc->cids);
qc->cids = NULL;
- pool_free(pool_head_quic_cc_buf, qc->tx.cc_buf_area);
+ if (objt_listener(qc->target))
+ pool_free(pool_head_quic_cc_buf, qc->tx.cc_buf_area);
+ else
+ pool_free(pool_head_quic_be_cc_buf, qc->tx.cc_buf_area);
qc->tx.cc_buf_area = NULL;
ret = 1;
}