Previously we did not handle the situation where RST_STREAM is submitted against a stream while requet HEADERS which opens that stream is still in queue. Due to max concurrent streams limit, RST_STREAM is sent first, and then request HEADERS, which effectively voids RST_STREAM. In this commit, we checks RST_STREAM against currently pending request HEADERS in queue and if stream ID matches, we mark that HEADERS as canceled and RST_STREAM is not sent in this case. The library will call on_frame_not_sent_callback for the canceled HEADERS with error code from RST_STREAM. |
||
---|---|---|
.. | ||
testdata | ||
.gitignore | ||
Makefile.am | ||
end_to_end.py | ||
failmalloc.c | ||
failmalloc_test.c | ||
failmalloc_test.h | ||
main.c | ||
malloc_wrapper.c | ||
malloc_wrapper.h | ||
nghttp2_buf_test.c | ||
nghttp2_buf_test.h | ||
nghttp2_frame_test.c | ||
nghttp2_frame_test.h | ||
nghttp2_hd_test.c | ||
nghttp2_hd_test.h | ||
nghttp2_helper_test.c | ||
nghttp2_helper_test.h | ||
nghttp2_map_test.c | ||
nghttp2_map_test.h | ||
nghttp2_npn_test.c | ||
nghttp2_npn_test.h | ||
nghttp2_pq_test.c | ||
nghttp2_pq_test.h | ||
nghttp2_queue_test.c | ||
nghttp2_queue_test.h | ||
nghttp2_session_test.c | ||
nghttp2_session_test.h | ||
nghttp2_stream_test.c | ||
nghttp2_stream_test.h | ||
nghttp2_test_helper.c | ||
nghttp2_test_helper.h |