1. 11 Jan, 2016 1 commit
    • Tatsuhiro Tsujikawa's avatar
      Check request/response submission error based side of session · bb6f842b
      Tatsuhiro Tsujikawa authored
      Disallow request from server, and response from client respectively.
      When the violation is detected, return NGHTTP2_ERR_PROTO from
      nghttp2_submit_request, nghttp2_submit_response,
      nghttp2_submit_headers.
      
      We also did some refactoring, and now self-dependency detection is
      placed where it is only required.
      bb6f842b
  2. 10 Jan, 2016 2 commits
    • Tatsuhiro Tsujikawa's avatar
      8f225ae8
    • 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
  3. 09 Jan, 2016 2 commits
  4. 07 Jan, 2016 3 commits
  5. 06 Jan, 2016 4 commits
  6. 05 Jan, 2016 7 commits
  7. 30 Dec, 2015 1 commit
  8. 25 Dec, 2015 6 commits
  9. 24 Dec, 2015 2 commits
  10. 23 Dec, 2015 8 commits
  11. 22 Dec, 2015 2 commits
  12. 21 Dec, 2015 2 commits
    • Tatsuhiro Tsujikawa's avatar
    • Tatsuhiro Tsujikawa's avatar
      Don't schedule response HEADERS with priority tree · ca4a40b8
      Tatsuhiro Tsujikawa authored
      Previously we scheduled the transmission of response HEADERS using
      priority tree in the belief that it allows more better utilization of
      bandwidth for prioritized streams.  But to reduce the overhead of
      reconstruction of priority queue when connection level flow control
      window is depleted, we just don't check priority tree in this case.
      This means that response HEADERS frames are not sent even though they
      are not flow controlled.  This could waste bandwidth.  To improve this
      situation, we stop scheduling response HEADERS with priority tree for
      now.  Now they are just sent in the order they submitted.  The
      response body DATA continued to be scheduled with priority tree as
      before.
      ca4a40b8