@@ -5,7 +5,6 @@ var Connection = require('./connection').Connection,
55 debug = require ( 'util' ) . debug ,
66 inherits = require ( 'util' ) . inherits ,
77 inspect = require ( 'util' ) . inspect ,
8- utils = require ( '../utils' ) ,
98 Server = require ( './server' ) . Server ,
109 PingStrategy = require ( './strategies/ping_strategy' ) . PingStrategy ,
1110 StatisticsStrategy = require ( './strategies/statistics_strategy' ) . StatisticsStrategy ,
@@ -727,7 +726,9 @@ ReplSet.prototype.connect = function(parent, options, callback) {
727726 this . _state = new ReplSet . State ( ) ;
728727
729728 // Ensure parent can do a slave query if it's set
730- parent . slaveOk = this . slaveOk ? this . slaveOk : parent . slaveOk ;
729+ parent . slaveOk = this . slaveOk
730+ ? this . slaveOk
731+ : parent . slaveOk ;
731732
732733 // Remove any listeners
733734 this . removeAllListeners ( "fullsetup" ) ;
@@ -760,48 +761,32 @@ ReplSet.prototype.connect = function(parent, options, callback) {
760761 // Get server addresses
761762 var addresses = this . _state . addresses ;
762763
763- // Default empty socket options object
764- var socketOptions = { } ;
765-
766- // Set fast connect timeout
767- socketOptions [ 'connectTimeoutMS' ] = this . _connectTimeoutMS ;
768-
769- // If ssl is specified
770- if ( this . ssl )
771- socketOptions . ssl = true ;
772-
773- // If a socket option object exists clone it
774- if ( utils . isObject ( this . socketOptions ) ) {
775- var keys = Object . keys ( this . socketOptions ) ;
776- for ( var j = 0 ; j < keys . length ; j ++ )
777- socketOptions [ keys [ j ] ] = this . socketOptions [ keys [ j ] ] ;
778- }
779-
780764 // De-duplicate any servers
781- var server ;
765+ var server , key ;
782766 for ( var i = 0 ; i < this . servers . length ; i ++ ) {
783767 server = this . servers [ i ] ;
784- // Add host information to socket options
785- socketOptions [ 'host' ] = server . host ;
786- socketOptions [ 'port' ] = server . port ;
787- server . socketOptions = socketOptions ;
788- server . replicasetInstance = this ;
789- server . enableRecordQueryStats ( this . recordQueryStats ) ;
790- // If server does not exist set it
791- if ( addresses [ server . host + ":" + server . port ] == null ) {
792- addresses [ server . host + ":" + server . port ] = server ;
768+ key = server . host + ":" + server . port ;
769+ if ( null == addresses [ key ] ) {
770+ addresses [ key ] = server ;
793771 }
794772 }
795773
796774 // Get the list of servers that is deduplicated and start connecting
797775 var candidateServers = [ ] ;
798776 var keys = Object . keys ( addresses ) ;
799777 for ( var i = 0 ; i < keys . length ; i ++ ) {
800- candidateServers . push ( addresses [ keys [ i ] ] ) ;
778+ server = addresses [ keys [ i ] ] ;
779+ server . assignReplicaSet ( this ) ;
780+ candidateServers . push ( server ) ;
801781 }
782+
802783 // Let's connect to the first one on the list
803784 server = candidateServers . pop ( ) ;
804- server . connect ( parent , { returnIsMasterResults : true , eventReceiver :server } , _connectHandler ( this , candidateServers , server ) ) ;
785+ var opts = {
786+ returnIsMasterResults : true ,
787+ eventReceiver : server
788+ }
789+ server . connect ( parent , opts , _connectHandler ( this , candidateServers , server ) ) ;
805790}
806791
807792/**
0 commit comments