diff options
author | 2016-11-08 08:45:18 -0800 | |
---|---|---|
committer | 2016-11-08 08:45:18 -0800 | |
commit | a7a956fe16e85b15363ce720d1d9c08bf09c69b8 (patch) | |
tree | f4a8397ee740506247335b0077cd54444ca9510e /src/core/lib/channel | |
parent | b65e234f7af6df1625ccd4dec386e0fa2f573eb7 (diff) | |
parent | b065b31c257a9562114433d880ce19985bc3a0a3 (diff) |
Merge github.com:grpc/grpc into fuzzit
Diffstat (limited to 'src/core/lib/channel')
-rw-r--r-- | src/core/lib/channel/compress_filter.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core/lib/channel/compress_filter.c b/src/core/lib/channel/compress_filter.c index 0981d59f63..23b7dfb8fd 100644 --- a/src/core/lib/channel/compress_filter.c +++ b/src/core/lib/channel/compress_filter.c @@ -111,9 +111,13 @@ static grpc_mdelem *compression_md_filter(void *user_data, grpc_mdelem *md) { return md; } -static int skip_compression(grpc_call_element *elem) { +static int skip_compression(grpc_call_element *elem, uint32_t flags) { call_data *calld = elem->call_data; channel_data *channeld = elem->channel_data; + + if (flags & (GRPC_WRITE_NO_COMPRESS | GRPC_WRITE_INTERNAL_COMPRESS)) { + return 1; + } if (calld->has_compression_algorithm) { if (calld->compression_algorithm == GRPC_COMPRESS_NONE) { return 1; @@ -241,8 +245,8 @@ static void compress_start_transport_stream_op(grpc_exec_ctx *exec_ctx, if (op->send_initial_metadata) { process_send_initial_metadata(elem, op->send_initial_metadata); } - if (op->send_message != NULL && !skip_compression(elem) && - 0 == (op->send_message->flags & GRPC_WRITE_NO_COMPRESS)) { + if (op->send_message != NULL && + !skip_compression(elem, op->send_message->flags)) { calld->send_op = op; calld->send_length = op->send_message->length; calld->send_flags = op->send_message->flags; |