Skip to content

Commit 984d8ff

Browse files
committed
Release 3.3.3
1 parent ebd47e7 commit 984d8ff

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/liblsquic/lsquic_full_conn_ietf.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,8 @@ blocked_ka_alarm_expired (enum alarm_id al_id, void *ctx,
767767
el = lsquic_hash_next(conn->ifc_pub.all_streams))
768768
{
769769
stream = lsquic_hashelem_getdata(el);
770-
if (lsquic_stream_is_blocked(stream))
770+
if (lsquic_stream_is_blocked(stream)
771+
&& !lsquic_stream_is_write_reset(stream))
771772
{
772773
if (!(stream->sm_qflags & SMQF_SENDING_FLAGS))
773774
TAILQ_INSERT_TAIL(&conn->ifc_pub.sending_streams, stream,
@@ -2820,7 +2821,18 @@ process_stream_ready_to_send (struct ietf_full_conn *conn,
28202821
if (stream->sm_qflags & SMQF_SEND_MAX_STREAM_DATA)
28212822
r &= generate_max_stream_data_frame(conn, stream);
28222823
if (stream->sm_qflags & SMQF_SEND_BLOCKED)
2823-
r &= lsquic_sendctl_gen_stream_blocked_frame(&conn->ifc_send_ctl, stream);
2824+
{
2825+
if (lsquic_stream_is_write_reset(stream))
2826+
{
2827+
stream->sm_qflags &= ~SMQF_SEND_BLOCKED;
2828+
if (!(stream->sm_qflags & SMQF_SENDING_FLAGS))
2829+
TAILQ_REMOVE(&stream->conn_pub->sending_streams, stream,
2830+
next_send_stream);
2831+
}
2832+
else
2833+
r &= lsquic_sendctl_gen_stream_blocked_frame(&conn->ifc_send_ctl,
2834+
stream);
2835+
}
28242836
if (stream->sm_qflags & SMQF_SEND_RST)
28252837
r &= generate_rst_stream_frame(conn, stream);
28262838
if (stream->sm_qflags & SMQF_SEND_STOP_SENDING)

0 commit comments

Comments
 (0)