diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2018-06-22 15:21:18 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2018-06-27 15:19:13 -0400 |
commit | 60559a00b81293184922b3418a8e56610edf8dd9 (patch) | |
tree | 4d74eaf849b70303f26aeb5ee91742e45a1a39b4 /src/mongo/rpc | |
parent | e7a75ec01e4e3683cc6b83e3bbc0f4c4b05168dc (diff) | |
download | mongo-60559a00b81293184922b3418a8e56610edf8dd9.tar.gz |
SERVER-32198 Add support for an optional `vWanted` to StaleConfigInfo
Diffstat (limited to 'src/mongo/rpc')
-rw-r--r-- | src/mongo/rpc/legacy_reply.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mongo/rpc/legacy_reply.cpp b/src/mongo/rpc/legacy_reply.cpp index 20ddf0ba377..d21b880e60c 100644 --- a/src/mongo/rpc/legacy_reply.cpp +++ b/src/mongo/rpc/legacy_reply.cpp @@ -79,12 +79,22 @@ LegacyReply::LegacyReply(const Message* message) { _commandReply.shareOwnershipWith(message->sharedBuffer()); if (_commandReply.firstElementFieldName() == "$err"_sd) { - // Upconvert legacy errors. + // Upconvert legacy errors + auto codeElement = _commandReply["code"]; + int code = codeElement.numberInt(); + if (!code) { + code = ErrorCodes::UnknownError; + } + + auto errmsg = _commandReply.firstElement().String(); + Status status(ErrorCodes::Error(code), errmsg, _commandReply); + BSONObjBuilder bob; - bob.appendAs(_commandReply.firstElement(), "errmsg"); bob.append("ok", 0.0); - if (auto code = _commandReply["code"]) { - bob.append(code); + bob.append("code", status.code()); + bob.append("errmsg", status.reason()); + if (auto extraInfo = status.extraInfo()) { + extraInfo->serialize(&bob); } _commandReply = bob.obj(); } |