Emit a CONNECTION_CLOSE with INTERNAL_ERROR code each time qcs
allocation fails. This can happen in two cases :
* when creating a local stream through application layer
* when instantiating a remote stream through qcc_get_qcs()
In both cases, error paths are already in place to interrupt the current
operation and a CONNECTION_CLOSE will be emitted soon after.
This should be backported up to 2.7.
qcs = qcs_new(qcc, *next, type);
if (!qcs) {
TRACE_LEAVE(QMUX_EV_QCS_NEW, qcc->conn);
+ qcc_emit_cc(qcc, QC_ERR_INTERNAL_ERROR);
return NULL;
}
qcs = qcs_new(qcc, *largest, type);
if (!qcs) {
- /* TODO emit RESET_STREAM */
TRACE_ERROR("stream fallocation failure", QMUX_EV_QCS_NEW, qcc->conn);
+ qcc_emit_cc(qcc, QC_ERR_INTERNAL_ERROR);
goto err;
}