summaryrefslogtreecommitdiff
path: root/src/mongo/s/client/sharding_connection_hook.cpp
diff options
context:
space:
mode:
authorSpencer T Brody <spencer@mongodb.com>2015-08-20 11:03:32 -0400
committerSpencer T Brody <spencer@mongodb.com>2015-08-21 13:19:08 -0400
commit7155f900cbc137dff3bcd7f1452f1a8a642f9bc5 (patch)
tree4a51de05021b05fb6dccbbe535746545b200f0a0 /src/mongo/s/client/sharding_connection_hook.cpp
parentd0f9155ebcf74eba2b4c65f0992fd557921c8d58 (diff)
downloadmongo-7155f900cbc137dff3bcd7f1452f1a8a642f9bc5.tar.gz
SERVER-20038 Check result of isMaster command in sharding connection hook
Diffstat (limited to 'src/mongo/s/client/sharding_connection_hook.cpp')
-rw-r--r--src/mongo/s/client/sharding_connection_hook.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/s/client/sharding_connection_hook.cpp b/src/mongo/s/client/sharding_connection_hook.cpp
index f74c9ea282d..3a5970b8091 100644
--- a/src/mongo/s/client/sharding_connection_hook.cpp
+++ b/src/mongo/s/client/sharding_connection_hook.cpp
@@ -40,6 +40,7 @@
#include "mongo/db/auth/authorization_session.h"
#include "mongo/db/auth/internal_user_auth.h"
#include "mongo/db/client.h"
+#include "mongo/rpc/get_status_from_command_result.h"
#include "mongo/rpc/metadata/audit_metadata.h"
#include "mongo/s/client/scc_fast_query_handler.h"
#include "mongo/s/cluster_last_error_info.h"
@@ -95,8 +96,9 @@ void ShardingConnectionHook::onCreate(DBClientBase* conn) {
}
} else if (conn->type() == ConnectionString::MASTER) {
BSONObj isMasterResponse;
- conn->runCommand("admin", BSON("ismaster" << 1), isMasterResponse);
-
+ if (!conn->runCommand("admin", BSON("ismaster" << 1), isMasterResponse)) {
+ uassertStatusOK(getStatusFromCommandResult(isMasterResponse));
+ }
long long configServerModeNumber;
Status status =