|
|
@ -1418,15 +1418,19 @@ grpc_chttp2_parse_error grpc_chttp2_header_parser_parse( |
|
|
|
GPR_TIMER_END("grpc_chttp2_hpack_parser_parse", 0); |
|
|
|
GPR_TIMER_END("grpc_chttp2_hpack_parser_parse", 0); |
|
|
|
return GRPC_CHTTP2_CONNECTION_ERROR; |
|
|
|
return GRPC_CHTTP2_CONNECTION_ERROR; |
|
|
|
} |
|
|
|
} |
|
|
|
if (parser->is_boundary) { |
|
|
|
/* need to check for null stream: this can occur if we receive an invalid
|
|
|
|
stream_parsing |
|
|
|
stream id on a header */ |
|
|
|
->got_metadata_on_parse[stream_parsing->header_frames_received] = 1; |
|
|
|
if (stream_parsing != NULL) { |
|
|
|
stream_parsing->header_frames_received++; |
|
|
|
if (parser->is_boundary) { |
|
|
|
grpc_chttp2_list_add_parsing_seen_stream(transport_parsing, |
|
|
|
stream_parsing |
|
|
|
stream_parsing); |
|
|
|
->got_metadata_on_parse[stream_parsing->header_frames_received] = 1; |
|
|
|
} |
|
|
|
stream_parsing->header_frames_received++; |
|
|
|
if (parser->is_eof) { |
|
|
|
grpc_chttp2_list_add_parsing_seen_stream(transport_parsing, |
|
|
|
stream_parsing->received_close = 1; |
|
|
|
stream_parsing); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (parser->is_eof) { |
|
|
|
|
|
|
|
stream_parsing->received_close = 1; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
parser->on_header = on_header_not_set; |
|
|
|
parser->on_header = on_header_not_set; |
|
|
|
parser->on_header_user_data = NULL; |
|
|
|
parser->on_header_user_data = NULL; |
|
|
|