TSG-9390 修复由于HTTP2流窗口限制导致部分大于6M文件hijack下载失败

This commit is contained in:
fengweihao
2022-04-14 10:10:29 +08:00
parent dc12d0dd6b
commit 8e6155ef31
3 changed files with 317 additions and 394 deletions

View File

@@ -116,9 +116,9 @@ struct tfe_h2_stream
unsigned int thread_id;
/** for down stream as server */
nghttp2_session *as_server;
nghttp2_session *http2_server_handle;
/** for up stream as client*/
nghttp2_session *as_client;
nghttp2_session *http2_client_handle;
const struct tfe_stream *tf_stream;
};

File diff suppressed because it is too large Load Diff

View File

@@ -196,7 +196,7 @@ TEST(Http2StreamParser, GetFrameWithMagic)
EXPECT_EQ(memcmp(magic_headers, kMagicHello, MAGIC_FRAME_LENGTH), 0);
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_server_handle, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
sess_data_ctx_fini(tapinfo->h2_stream_info, NULL, 0);
@@ -216,14 +216,14 @@ TEST(Http2StreamParser, GetFrameWithHeader_01)
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_server_handle, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
/*Recv request Headers**/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, request_get_headers, sizeof(request_get_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_server_handle, request_get_headers, sizeof(request_get_headers));
EXPECT_GT(readlen, 0);
UT_Parse_ReqHeaders(h2_stream_info->as_server);
UT_Parse_ReqHeaders(h2_stream_info->http2_server_handle);
sess_data_ctx_fini(tapinfo->h2_stream_info, NULL, 0);
free(tapinfo->h2_stream_info);
@@ -242,11 +242,11 @@ TEST(Http2StreamParser, GetFrameWithHeader_02)
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_server_handle, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
/*Recv request Headers**/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, request_get_headers, sizeof(request_get_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_server_handle, request_get_headers, sizeof(request_get_headers));
EXPECT_GT(readlen, 0);
/*Send data message**/
@@ -271,11 +271,11 @@ TEST(Http2StreamParser, RespFrameWithHead_01)
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_server_handle, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
/*Recv request Headers**/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, request_get_headers, sizeof(request_get_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_server_handle, request_get_headers, sizeof(request_get_headers));
EXPECT_GT(readlen, 0);
/*Send data head message**/
@@ -284,13 +284,13 @@ TEST(Http2StreamParser, RespFrameWithHead_01)
//EXPECT_EQ(stream_action, ACTION_DROP_DATA);
/*Recv response settings*/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_client, response_settings, sizeof(response_settings));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_client_handle, response_settings, sizeof(response_settings));
EXPECT_GT(readlen, 0);
/*Recv response Header*/
readlen = nghttp2_session_mem_recv(h2_stream_info->as_client, response_header2, sizeof(response_header2));
readlen = nghttp2_session_mem_recv(h2_stream_info->http2_client_handle, response_header2, sizeof(response_header2));
EXPECT_GT(readlen, 0);
UT_Parse_RespHeaders(h2_stream_info->as_client);
UT_Parse_RespHeaders(h2_stream_info->http2_client_handle);
sess_data_ctx_fini(tapinfo->h2_stream_info, NULL, 0);
free(tapinfo->h2_stream_info);