mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 23:56:57 +02:00
MINOR: mux-quic: close on qcs allocation failure
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.
This commit is contained in:
parent
e2213df9fe
commit
c0c6b6d8c0
@ -538,6 +538,7 @@ struct qcs *qcc_init_stream_local(struct qcc *qcc, int bidi)
|
|||||||
qcs = qcs_new(qcc, *next, type);
|
qcs = qcs_new(qcc, *next, type);
|
||||||
if (!qcs) {
|
if (!qcs) {
|
||||||
TRACE_LEAVE(QMUX_EV_QCS_NEW, qcc->conn);
|
TRACE_LEAVE(QMUX_EV_QCS_NEW, qcc->conn);
|
||||||
|
qcc_emit_cc(qcc, QC_ERR_INTERNAL_ERROR);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -597,8 +598,8 @@ static struct qcs *qcc_init_stream_remote(struct qcc *qcc, uint64_t id)
|
|||||||
|
|
||||||
qcs = qcs_new(qcc, *largest, type);
|
qcs = qcs_new(qcc, *largest, type);
|
||||||
if (!qcs) {
|
if (!qcs) {
|
||||||
/* TODO emit RESET_STREAM */
|
|
||||||
TRACE_ERROR("stream fallocation failure", QMUX_EV_QCS_NEW, qcc->conn);
|
TRACE_ERROR("stream fallocation failure", QMUX_EV_QCS_NEW, qcc->conn);
|
||||||
|
qcc_emit_cc(qcc, QC_ERR_INTERNAL_ERROR);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user