summaryrefslogtreecommitdiff
path: root/scripting
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2010-03-22 09:51:06 -0400
committerEliot Horowitz <eliot@10gen.com>2010-03-22 09:51:06 -0400
commit92dca86601a5f54c76e748e04ecb3a96d35ca0b4 (patch)
treeb8b92f138bdd1247078c88cc2c64a7b9563bda6f /scripting
parentf154df074d4bbf9aece18a20fef8eef4f49a5a62 (diff)
downloadmongo-92dca86601a5f54c76e748e04ecb3a96d35ca0b4.tar.gz
some abstractions in prep for SHARDING-39
Diffstat (limited to 'scripting')
-rw-r--r--scripting/sm_db.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/scripting/sm_db.cpp b/scripting/sm_db.cpp
index 1d0fe119511..c74baf96ba1 100644
--- a/scripting/sm_db.cpp
+++ b/scripting/sm_db.cpp
@@ -144,11 +144,13 @@ namespace mongo {
string host = "127.0.0.1";
if ( argc > 0 )
host = c.toString( argv[0] );
+
+ int numCommas = DBClientBase::countCommas( host );
shared_ptr< DBClientWithCommands > conn;
string errmsg;
- if ( host.find( "," ) == string::npos ){
+ if ( numCommas == 0 ){
DBClientConnection * c = new DBClientConnection( true );
conn.reset( c );
if ( ! c->connect( host , errmsg ) ){
@@ -157,30 +159,21 @@ namespace mongo {
}
ScriptEngine::runConnectCallback( *c );
}
- else { // paired
- int numCommas = 0;
- for ( uint i=0; i<host.size(); i++ )
- if ( host[i] == ',' )
- numCommas++;
-
- assert( numCommas > 0 );
-
- if ( numCommas == 1 ){
- DBClientPaired * c = new DBClientPaired();
- conn.reset( c );
- if ( ! c->connect( host ) ){
- JS_ReportError( cx , "couldn't connect to pair" );
+ else if ( numCommas == 1 ){ // paired
+ DBClientPaired * c = new DBClientPaired();
+ conn.reset( c );
+ if ( ! c->connect( host ) ){
+ JS_ReportError( cx , "couldn't connect to pair" );
return JS_FALSE;
- }
- }
- else if ( numCommas == 2 ){
- conn.reset( new SyncClusterConnection( host ) );
- }
- else {
- JS_ReportError( cx , "1 (paired) or 2(quorum) commas are allowed" );
- return JS_FALSE;
}
}
+ else if ( numCommas == 2 ){
+ conn.reset( new SyncClusterConnection( host ) );
+ }
+ else {
+ JS_ReportError( cx , "1 (paired) or 2(quorum) commas are allowed" );
+ return JS_FALSE;
+ }
assert( JS_SetPrivate( cx , obj , (void*)( new shared_ptr< DBClientWithCommands >( conn ) ) ) );