diff options
author | Craig Tiller <ctiller@google.com> | 2015-07-23 17:00:12 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2015-07-23 17:00:12 -0700 |
commit | a1b820e981187036835ae0ff43b7b5a17af8e131 (patch) | |
tree | 397dfce9465a36ec907a35ebcc6c43ea977a98d0 /src | |
parent | b5bbf667798f28d960edd6f1145d9479a3b39831 (diff) | |
parent | 518e3fe700015759cedea57f2e4febf300d57ba7 (diff) |
Merge pull request #2586 from dgquintas/compress_flag_reset
Fixes for streaming compression.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/channel/compress_filter.c | 2 | ||||
-rw-r--r-- | src/core/transport/chttp2/frame_data.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/core/channel/compress_filter.c b/src/core/channel/compress_filter.c index 14e8ca7325..4bf24e7db3 100644 --- a/src/core/channel/compress_filter.c +++ b/src/core/channel/compress_filter.c @@ -174,6 +174,8 @@ static void process_send_ops(grpc_call_element *elem, size_t i; int did_compress = 0; + /* In streaming calls, we need to reset the previously accumulated slices */ + gpr_slice_buffer_reset_and_unref(&calld->slices); for (i = 0; i < send_ops->nops; ++i) { grpc_stream_op *sop = &send_ops->ops[i]; switch (sop->type) { diff --git a/src/core/transport/chttp2/frame_data.c b/src/core/transport/chttp2/frame_data.c index 7a4c355f23..40bf2ebd79 100644 --- a/src/core/transport/chttp2/frame_data.c +++ b/src/core/transport/chttp2/frame_data.c @@ -92,7 +92,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse( p->frame_type = *cur; switch (p->frame_type) { case 0: - /* noop */ + p->is_frame_compressed = 0; /* GPR_FALSE */ break; case 1: p->is_frame_compressed = 1; /* GPR_TRUE */ |