diff options
author | Craig Tiller <craig.tiller@gmail.com> | 2015-11-10 08:37:46 +0000 |
---|---|---|
committer | Craig Tiller <craig.tiller@gmail.com> | 2015-11-10 08:37:46 +0000 |
commit | 027a74cd3b3ce350ba5890d0fd8f6399a200227f (patch) | |
tree | e192513c5db0291fb4487cce7e9d2fb34d8674e5 /src/core/transport/chttp2/parsing.c | |
parent | 83e73373cb63be5ec5a97d894e7a06faf81d3df8 (diff) |
First round changes to handle dynamic hpack table size
Diffstat (limited to 'src/core/transport/chttp2/parsing.c')
-rw-r--r-- | src/core/transport/chttp2/parsing.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/transport/chttp2/parsing.c b/src/core/transport/chttp2/parsing.c index 8cef8fbb77..9a96a8ef4d 100644 --- a/src/core/transport/chttp2/parsing.c +++ b/src/core/transport/chttp2/parsing.c @@ -78,6 +78,7 @@ void grpc_chttp2_prepare_to_read( GPR_TIMER_BEGIN("grpc_chttp2_prepare_to_read", 0); transport_parsing->next_stream_id = transport_global->next_stream_id; + transport_parsing->last_sent_max_table_size = transport_global->settings[GRPC_SENT_SETTINGS][GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]; /* update the parsing view of incoming window */ while (grpc_chttp2_list_pop_unannounced_incoming_window_available( @@ -127,6 +128,7 @@ void grpc_chttp2_publish_reads( transport_global->settings[GRPC_SENT_SETTINGS], GRPC_CHTTP2_NUM_SETTINGS * sizeof(gpr_uint32)); transport_parsing->settings_ack_received = 0; + transport_global->sent_local_settings = 0; } /* move goaway to the global state if we received one (it will be @@ -819,6 +821,7 @@ static int init_settings_frame_parser( } if (transport_parsing->incoming_frame_flags & GRPC_CHTTP2_FLAG_ACK) { transport_parsing->settings_ack_received = 1; + grpc_chttp2_hptbl_set_max_bytes(&transport_parsing->hpack_parser.table, transport_parsing->last_sent_max_table_size); } transport_parsing->parser = grpc_chttp2_settings_parser_parse; transport_parsing->parser_data = &transport_parsing->simple.settings; |