aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-07-23 17:00:12 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-07-23 17:00:12 -0700
commita1b820e981187036835ae0ff43b7b5a17af8e131 (patch)
tree397dfce9465a36ec907a35ebcc6c43ea977a98d0 /src
parentb5bbf667798f28d960edd6f1145d9479a3b39831 (diff)
parent518e3fe700015759cedea57f2e4febf300d57ba7 (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.c2
-rw-r--r--src/core/transport/chttp2/frame_data.c2
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 */