diff --git a/src/liblsquic/ls-qpack b/src/liblsquic/ls-qpack index bbd7070..5217927 160000 --- a/src/liblsquic/ls-qpack +++ b/src/liblsquic/ls-qpack @@ -1 +1 @@ -Subproject commit bbd707065f4547a1b5a25bbc1cf6c1963e86b8cf +Subproject commit 521792711f2839f05565fd3dd617708cfb5b80ee diff --git a/src/liblsquic/lsquic_stream.c b/src/liblsquic/lsquic_stream.c index 0fce63c..3b0e391 100644 --- a/src/liblsquic/lsquic_stream.c +++ b/src/liblsquic/lsquic_stream.c @@ -1316,8 +1316,6 @@ lsquic_stream_stop_sending_in (struct lsquic_stream *stream, SM_HISTORY_APPEND(stream, SHE_STOP_SENDIG_IN); stream->stream_flags |= STREAM_SS_RECVD; - stream->sm_qflags &= ~SMQF_SEND_BLOCKED; - if (stream->stream_if->on_reset && !(stream->sm_dflags & SMDF_ONRESET1) && !(stream->stream_flags & STREAM_ONCLOSE_DONE)) { @@ -1336,6 +1334,15 @@ lsquic_stream_stop_sending_in (struct lsquic_stream *stream, && !(stream->sm_qflags & SMQF_SEND_RST)) stream_reset(stream, 0, 0); + if (stream->sm_qflags & (SMQF_SEND_WUF | SMQF_SEND_BLOCKED \ + | SMQF_SEND_STOP_SENDING)) + { + stream->sm_qflags &= ~(SMQF_SEND_WUF | SMQF_SEND_BLOCKED \ + | SMQF_SEND_STOP_SENDING); + if (!(stream->sm_qflags & SMQF_SENDING_FLAGS)) + TAILQ_REMOVE(&stream->conn_pub->sending_streams, stream, next_send_stream); + } + maybe_finish_stream(stream); maybe_schedule_call_on_close(stream); } diff --git a/src/lshpack b/src/lshpack index a84a6b9..32e96f1 160000 --- a/src/lshpack +++ b/src/lshpack @@ -1 +1 @@ -Subproject commit a84a6b9f6d1e2dd5605c399fc2edcfeea8291258 +Subproject commit 32e96f10593c7cb8553cd8c9c12721100ae9e924