Fix strange use of session_detect_idle_stream
This commit is contained in:
parent
dd93b29397
commit
9f0083309e
|
@ -3429,6 +3429,8 @@ int nghttp2_session_on_request_headers_received(nghttp2_session *session,
|
||||||
return NGHTTP2_ERR_IGN_HEADER_BLOCK;
|
return NGHTTP2_ERR_IGN_HEADER_BLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(session->server);
|
||||||
|
|
||||||
if (!session_is_new_peer_stream_id(session, frame->hd.stream_id)) {
|
if (!session_is_new_peer_stream_id(session, frame->hd.stream_id)) {
|
||||||
/* The spec says if an endpoint receives a HEADERS with invalid
|
/* The spec says if an endpoint receives a HEADERS with invalid
|
||||||
stream ID, it MUST issue connection error with error code
|
stream ID, it MUST issue connection error with error code
|
||||||
|
@ -3437,7 +3439,8 @@ int nghttp2_session_on_request_headers_received(nghttp2_session *session,
|
||||||
Then connection error is too harsh. It means that we only use
|
Then connection error is too harsh. It means that we only use
|
||||||
connection error if stream ID refers idle stream. OTherwise we
|
connection error if stream ID refers idle stream. OTherwise we
|
||||||
just ignore HEADERS for now. */
|
just ignore HEADERS for now. */
|
||||||
if (session_detect_idle_stream(session, frame->hd.stream_id)) {
|
if (frame->hd.stream_id == 0 ||
|
||||||
|
nghttp2_session_is_my_stream_id(session, frame->hd.stream_id)) {
|
||||||
return session_inflate_handle_invalid_connection(
|
return session_inflate_handle_invalid_connection(
|
||||||
session, frame, NGHTTP2_ERR_PROTO,
|
session, frame, NGHTTP2_ERR_PROTO,
|
||||||
"request HEADERS: invalid stream_id");
|
"request HEADERS: invalid stream_id");
|
||||||
|
|
Loading…
Reference in New Issue