diff options
author | Nicolas Noble <nicolasnoble@users.noreply.github.com> | 2016-07-07 13:56:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-07 13:56:13 -0700 |
commit | e705dc44a1d850457f700a66089ef9fcd463178b (patch) | |
tree | 19c4abdaf8ee6062e955fe59945494ae01c8b25d /src/core | |
parent | 8fddced6cbe0fd4636a7b528560396c375fb7e29 (diff) | |
parent | b44b385ad27a50546919c949317d3c81855d54d7 (diff) |
Merge pull request #7190 from dgquintas/bb_reader_error
Return success status of grpc_byte_buffer_reader_init
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/lib/surface/byte_buffer_reader.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/lib/surface/byte_buffer_reader.c b/src/core/lib/surface/byte_buffer_reader.c index c97079f638..310bacb2c9 100644 --- a/src/core/lib/surface/byte_buffer_reader.c +++ b/src/core/lib/surface/byte_buffer_reader.c @@ -54,8 +54,8 @@ static int is_compressed(grpc_byte_buffer *buffer) { return 1 /* GPR_TRUE */; } -void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, - grpc_byte_buffer *buffer) { +int grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, + grpc_byte_buffer *buffer) { gpr_slice_buffer decompressed_slices_buffer; reader->buffer_in = buffer; switch (reader->buffer_in->type) { @@ -67,9 +67,10 @@ void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, &decompressed_slices_buffer) == 0) { gpr_log(GPR_ERROR, "Unexpected error decompressing data for algorithm with enum " - "value '%d'. Reading data as if it were uncompressed.", + "value '%d'.", reader->buffer_in->data.raw.compression); - reader->buffer_out = reader->buffer_in; + memset(reader, 0, sizeof(*reader)); + return 0; } else { /* all fine */ reader->buffer_out = grpc_raw_byte_buffer_create(decompressed_slices_buffer.slices, @@ -82,6 +83,7 @@ void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, reader->current.index = 0; break; } + return 1; } void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader) { |