aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2015-05-16 18:13:10 +0900
committerDaniel Stenberg <daniel@haxx.se>2015-05-18 09:33:48 +0200
commit7ff7e45405d0ec1c44bc8da6151b36753a1e0993 (patch)
tree45f24851f1a471e4da62871534202595d53a64c0 /lib
parent4ac6cc3ebdd7cc6813a78d2a93ba0a2eb06351ba (diff)
http2: Ignore if we have stream ID not in hash in on_stream_close
We could get stream ID not in the hash in on_stream_close. For example, if we decided to reject stream (e.g., PUSH_PROMISE), then we don't create stream and store it in hash with its stream ID.
Diffstat (limited to 'lib')
-rw-r--r--lib/http2.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/http2.c b/lib/http2.c
index 951a0a884..d50f1731e 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -431,11 +431,13 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id,
data_s = Curl_hash_pick(&conn->proto.httpc.streamsh, &stream_id,
sizeof(stream_id));
if(!data_s) {
- /* Receiving a Stream ID not in the hash should not happen, this is an
- internal error more than anything else! */
- failf(conn->data, "Received frame on Stream ID: %x not in stream hash!",
+ /* We could get stream ID not in the hash. For example, if we
+ decided to reject stream (e.g., PUSH_PROMISE). We call infof
+ as a debugging purpose for now. */
+ infof(conn->data,
+ "Received frame on Stream ID: %x not in stream hash!\n",
stream_id);
- return NGHTTP2_ERR_CALLBACK_FAILURE;
+ return 0;
}
stream = data_s->req.protop;