diff options
author | Spencer T Brody <spencer@mongodb.com> | 2015-08-20 11:03:32 -0400 |
---|---|---|
committer | Spencer T Brody <spencer@mongodb.com> | 2015-08-21 13:19:08 -0400 |
commit | 7155f900cbc137dff3bcd7f1452f1a8a642f9bc5 (patch) | |
tree | 4a51de05021b05fb6dccbbe535746545b200f0a0 /src/mongo/s/client/sharding_connection_hook.cpp | |
parent | d0f9155ebcf74eba2b4c65f0992fd557921c8d58 (diff) | |
download | mongo-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.cpp | 6 |
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 = |