aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/grpc/client
diff options
context:
space:
mode:
authorDaniil Cherednik <dcherednik@ydb.tech>2023-10-23 20:34:16 +0000
committerDaniil Cherednik <dcherednik@ydb.tech>2023-10-23 20:34:16 +0000
commite84c813452e9ed62415b2d17a117008fce909a3d (patch)
tree998632d6f08419de5b644940799f3be9408ab46b /library/cpp/grpc/client
parentdf6e99640a1489cde9b7cc5b58a3747c6ec28921 (diff)
downloadydb-stable-23-3.tar.gz
Intermediate changesstable-23-3
x-stable-origin-commit: 8b96eef194d7fb3b315816b97322e8dd90bf3d94
Diffstat (limited to 'library/cpp/grpc/client')
-rw-r--r--library/cpp/grpc/client/grpc_client_low.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/library/cpp/grpc/client/grpc_client_low.h b/library/cpp/grpc/client/grpc_client_low.h
index 037463cb78c..9c1358e5ebb 100644
--- a/library/cpp/grpc/client/grpc_client_low.h
+++ b/library/cpp/grpc/client/grpc_client_low.h
@@ -131,6 +131,7 @@ struct TGrpcStatus {
TString Details;
int GRpcStatusCode;
bool InternalError;
+ std::multimap<TString, TString> ServerTrailingMetadata;
TGrpcStatus()
: GRpcStatusCode(grpc::StatusCode::OK)
@@ -800,6 +801,11 @@ private:
} else if (readCallback) {
if (status.Ok()) {
status = TGrpcStatus(grpc::StatusCode::OUT_OF_RANGE, "Read EOF");
+ for (const auto& [name, value] : Context.GetServerTrailingMetadata()) {
+ status.ServerTrailingMetadata.emplace(
+ TString(name.begin(), name.end()),
+ TString(value.begin(), value.end()));
+ }
}
readCallback(std::move(status));
} else if (finishCallback) {
@@ -1196,6 +1202,11 @@ private:
} else if (readCallback) {
if (status.Ok()) {
status = TGrpcStatus(grpc::StatusCode::OUT_OF_RANGE, "Read EOF");
+ for (const auto& [name, value] : Context.GetServerTrailingMetadata()) {
+ status.ServerTrailingMetadata.emplace(
+ TString(name.begin(), name.end()),
+ TString(value.begin(), value.end()));
+ }
}
readCallback(std::move(status));
} else if (finishCallback) {