diff options
-rw-r--r-- | src/cpp/common/call.cc | 4 | ||||
-rw-r--r-- | src/cpp/server/server.cc | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc index df800d940d..0922a6e460 100644 --- a/src/cpp/common/call.cc +++ b/src/cpp/common/call.cc @@ -31,6 +31,7 @@ * */ +#include <google/protobuf/message.h> #include <grpc/support/alloc.h> #include <grpc++/impl/call.h> #include <grpc++/client_context.h> @@ -144,6 +145,7 @@ void CallOpBuffer::AddSendMessage(const google::protobuf::Message& message) { void CallOpBuffer::AddRecvMessage(google::protobuf::Message* message) { recv_message_ = message; + recv_message_->Clear(); } void CallOpBuffer::AddClientSendClose() { client_send_close_ = true; } @@ -254,7 +256,7 @@ void CallOpBuffer::FinalizeResult(void** tag, bool* status) { if (recv_message_) { if (recv_message_buf_) { got_message = true; - *status = DeserializeProto(recv_message_buf_, recv_message_); + *status &= DeserializeProto(recv_message_buf_, recv_message_); grpc_byte_buffer_destroy(recv_message_buf_); recv_message_buf_ = nullptr; } else { diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc index 294eeae585..35ced54aa7 100644 --- a/src/cpp/server/server.cc +++ b/src/cpp/server/server.cc @@ -314,7 +314,7 @@ class Server::AsyncRequest final : public CompletionQueueTag { *tag = tag_; if (*status && request_) { if (payload_) { - *status = DeserializeProto(payload_, request_); + *status &= DeserializeProto(payload_, request_); } else { *status = false; } |