mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 00:27:08 +02:00
BUG/MINOR: mux_quic: Dropped packet upon retransmission for closed streams
We rely on the largest ID which was used to open streams to know if the stream we received STREAM frames for is closed or not. If closed, we return the same status as the one for a STREAM frame which was a already received one for on open stream.
This commit is contained in:
parent
d62240c9e5
commit
b57de07a21
@ -363,9 +363,15 @@ int qcc_recv(struct qcc *qcc, uint64_t id, uint64_t len, uint64_t offset,
|
|||||||
|
|
||||||
qcs = qcc_get_qcs(qcc, id);
|
qcs = qcc_get_qcs(qcc, id);
|
||||||
if (!qcs) {
|
if (!qcs) {
|
||||||
|
if ((id >> QCS_ID_TYPE_SHIFT) <= qcc->strms[qcs_id_type(id)].largest_id) {
|
||||||
|
TRACE_DEVEL("already released stream", QMUX_EV_QCC_RECV|QMUX_EV_QCC_NQCS, qcc->conn, NULL, &id);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
TRACE_DEVEL("leaving on stream not found", QMUX_EV_QCC_RECV|QMUX_EV_QCC_NQCS, qcc->conn, NULL, &id);
|
TRACE_DEVEL("leaving on stream not found", QMUX_EV_QCC_RECV|QMUX_EV_QCC_NQCS, qcc->conn, NULL, &id);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*out_qcs = qcs;
|
*out_qcs = qcs;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user