1. 09 Apr, 2015 9 commits
  2. 08 Apr, 2015 17 commits
  3. 07 Apr, 2015 2 commits
  4. 06 Apr, 2015 3 commits
    • Tatsuhiro Tsujikawa's avatar
      Add nghttp2_session_consume_{connection,stream} to consume bytes independently · d56ecd74
      Tatsuhiro Tsujikawa authored
      The existing nghttp2_session_consume() affects both connection and
      stream level flow control windows.  The new functions only affects
      either connection or stream.  There is some interesting use cases.
      For example, we may want to pause a stream by not sending
      WINDOW_UPDATE, meanwhile we want to continue to process other streams.
      In this case, we use nghttp2_session_consume_connection() to tell
      library that only connection level window is recovered.  The relevant
      discussion: https://code.google.com/p/chromium/issues/detail?id=473259
      d56ecd74
    • Tatsuhiro Tsujikawa's avatar
      Update doc · ef4e39be
      Tatsuhiro Tsujikawa authored
      ef4e39be
    • Tatsuhiro Tsujikawa's avatar
      nghttpx: Fix bug that data buffered in SSL object are not read · d42f31ca
      Tatsuhiro Tsujikawa authored
      This is same issue described in https://github.com/h2o/h2o/issues/268.
      That is if SSL object has decrypted data buffered inside it, and
      application does not read it for some reason (e.g., rate limit), we
      have to check the existence of data using SSL_pending.  This is
      because buffered data inside SSL is not notified by io watcher.  It is
      obvious, but we totally missed it.
      
      nghttpx code normally reads everything until SSL_read returns error
      (want-read).  But if rate limit is involved, we stop reading early.
      Also in HTTP/1 code, while processing one request, we just read until
      buffer is filled up.  In these cases, we may suffer from this problem.
      
      This commit fixes this problem, by performing SSL_pending() and if it
      has buffered data and read io watcher is enabled, we feed event using
      ev_feed_event().
      d42f31ca
  5. 05 Apr, 2015 2 commits
  6. 04 Apr, 2015 1 commit
    • Tatsuhiro Tsujikawa's avatar
      Add nghttp2_send_data_callback to send DATA payload without copying · 9eff511c
      Tatsuhiro Tsujikawa authored
      To avoid buffer copy in nghttp2_data_source_read_callback, this commit
      introduces NGHTTP2_DATA_FLAG_NO_COPY and nghttp2_send_data_callback.
      By using NGHTTP2_DATA_FLAG_NO_COPY in
      nghttp2_data_source_read_callback, application can avoid to copy
      application data to given buffer.  Instead, application has to
      implement nghttp2_send_data_callback to send complete DATA frame by
      itself.  We see noticeable performance increase in nghttpd and
      tiny-nghttpd using this new feature.  On the other hand, nghttpx does
      not show such difference, probably because buffer copy is not
      bottleneck.  Using nghttp2_send_data_callback adds complexity, so it
      is recommended to measure the performance to see whether this extra
      complexity worth it.
      9eff511c
  7. 03 Apr, 2015 6 commits