diff options
author | 2015-02-11 15:36:31 -0800 | |
---|---|---|
committer | 2015-02-11 15:36:31 -0800 | |
commit | 9dcb0f8e1d58d3f6f4d14b47bddb53ba8cf83a42 (patch) | |
tree | 3c0f1b9ccb14129b4bda2e84a6f5508926ace641 /src | |
parent | 7418d01de4b10b5870b8b78a4ce5198beae49445 (diff) |
Send initial metadata
Diffstat (limited to 'src')
-rw-r--r-- | src/cpp/server/server.cc | 5 | ||||
-rw-r--r-- | src/cpp/server/server_context.cc | 11 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc index 8974850b8c..4392739367 100644 --- a/src/cpp/server/server.cc +++ b/src/cpp/server/server.cc @@ -172,10 +172,13 @@ class Server::MethodRequestData final : public CompletionQueueTag { auto status = method_->handler()->RunHandler( MethodHandler::HandlerParameter(&call_, &ctx_, req.get(), res.get())); CallOpBuffer buf; - buf.AddServerSendStatus(nullptr, status); + if (!ctx_.sent_initial_metadata_) { + buf.AddSendInitialMetadata(&ctx_.initial_metadata_); + } if (has_response_payload_) { buf.AddSendMessage(*res); } + buf.AddServerSendStatus(&ctx_.trailing_metadata_, status); call_.PerformOps(&buf); GPR_ASSERT(cq_.Pluck(&buf)); } diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc index 7e0bc4de36..2bf4104d76 100644 --- a/src/cpp/server/server_context.cc +++ b/src/cpp/server/server_context.cc @@ -37,11 +37,14 @@ namespace grpc { -ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata *metadata, size_t metadata_count) - : deadline_(Timespec2Timepoint(deadline)) { +ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata *metadata, + size_t metadata_count) + : deadline_(Timespec2Timepoint(deadline)) { for (size_t i = 0; i < metadata_count; i++) { - metadata_.insert(std::make_pair(grpc::string(metadata[i].key), - grpc::string(metadata[i].value, metadata[i].value + metadata[i].value_length))); + client_metadata_.insert(std::make_pair( + grpc::string(metadata[i].key), + grpc::string(metadata[i].value, + metadata[i].value + metadata[i].value_length))); } } |