• Tatsuhiro Tsujikawa's avatar
    Strict outgoing idle stream detection · 9cea9868
    Tatsuhiro Tsujikawa authored
    Previously, we use session->next_stream_id to detect that given stream
    ID was idle or not.  But this was suboptimal, since it was updated
    when stream ID was assigned, and it did not necessarily mean that it
    actually has been sent to the peer.  Now we introduced
    session->sent_stream_id, which only updated when HEADERS/PUSH_PROMISE
    has sent.  Using sent_stream_id instead of next_stream_id tightens
    idle stream detection, and misbehaved peer which sends frame with
    stream ID that has not been generated.
    
    This commit also overhauls test code which involves opening streams.
    Now we have some wrapper functions for nghttp2_session_open_stream()
    which also take care of updating next_stream_id and
    last_recv_stream_id.  They are crucial for some tests.
    9cea9868
nghttp2_test_helper.c 14 KB