Commit 1ac028e1 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

Take into account that pending_local_max_concurrent_stream could be too large

pending_local_max_concurrent_stream is, once local settings applied,
becomes NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS, which is very large
number.  When adjusting number of streams, we have to take min of
local effective SETTINGS_MAX_CONCURRENT_STREAMS and pending one.
parent 2778e4aa
......@@ -889,15 +889,22 @@ void nghttp2_session_keep_closed_stream(nghttp2_session *session,
void nghttp2_session_adjust_closed_stream(nghttp2_session *session,
ssize_t offset)
{
size_t num_stream_max;
num_stream_max =
nghttp2_min
(session->local_settings[NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS],
session->pending_local_max_concurrent_stream);
DEBUGF(fprintf(stderr, "stream: adjusting kept closed streams "
"num_closed_streams=%zu, num_incoming_streams=%zu, "
"max_concurrent_streams=%u\n",
session->num_closed_streams, session->num_incoming_streams,
session->pending_local_max_concurrent_stream));
num_stream_max));
while(session->num_closed_streams > 0 &&
session->num_closed_streams + session->num_incoming_streams + offset
> session->pending_local_max_concurrent_stream) {
> num_stream_max) {
nghttp2_stream *head_stream;
head_stream = session->closed_stream_head;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment