summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/commands.cpp')
-rw-r--r--src/mongo/db/commands.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/mongo/db/commands.cpp b/src/mongo/db/commands.cpp
index 82d68fc21d3..9187d9a2be4 100644
--- a/src/mongo/db/commands.cpp
+++ b/src/mongo/db/commands.cpp
@@ -53,7 +53,7 @@
#include "mongo/db/jsobj.h"
#include "mongo/db/namespace_string.h"
#include "mongo/rpc/factory.h"
-#include "mongo/rpc/metadata/client_metadata_ismaster.h"
+#include "mongo/rpc/metadata/client_metadata.h"
#include "mongo/rpc/op_msg_rpc_impls.h"
#include "mongo/rpc/protocol.h"
#include "mongo/rpc/write_concern_error_detail.h"
@@ -476,6 +476,11 @@ bool CommandHelpers::shouldActivateFailCommandFailPoint(const BSONObj& data,
if (cmd->getName() == "configureFailPoint"_sd) // Banned even if in failCommands.
return false;
+ auto appName = StringData();
+ if (auto clientMetadata = ClientMetadata::get(client)) {
+ appName = clientMetadata->getApplicationName();
+ }
+
if (data.hasField("threadName") &&
(client->desc() !=
data.getStringField(
@@ -483,12 +488,8 @@ bool CommandHelpers::shouldActivateFailCommandFailPoint(const BSONObj& data,
return false;
}
- if (data.hasField("appName")) {
- const auto& clientMetadata = ClientMetadataIsMasterState::get(client).getClientMetadata();
- if (clientMetadata &&
- clientMetadata.get().getApplicationName() != data.getStringField("appName")) {
- return false; // only activate failpoint on connection with a certain appName
- }
+ if (data.hasField("appName") && (appName != data.getStringField("appName"))) {
+ return false; // only activate failpoint on connection with a certain appName
}
if (client->session() && (client->session()->getTags() & transport::Session::kInternalClient)) {
@@ -577,10 +578,8 @@ void CommandHelpers::handleMarkKillOnClientDisconnect(OperationContext* opCtx,
MONGO_FAIL_POINT_BLOCK_IF(
waitInCommandMarkKillOnClientDisconnect, options, [&](const BSONObj& obj) {
- const auto& clientMetadata =
- ClientMetadataIsMasterState::get(opCtx->getClient()).getClientMetadata();
-
- return clientMetadata && (clientMetadata->getApplicationName() == obj["appName"].str());
+ auto md = ClientMetadata::get(opCtx->getClient());
+ return md && (md->getApplicationName() == obj["appName"].str());
}) {
MONGO_FAIL_POINT_PAUSE_WHILE_SET_OR_INTERRUPTED(opCtx,
waitInCommandMarkKillOnClientDisconnect);