Skip to content

Commit b4c4a89

Browse files
committed
RUBY-900 Clearer logic when deciding whether to add a server to the cluster
1 parent 3f1fdea commit b4c4a89

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

lib/mongo/cluster.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def ==(other)
6666
# @since 2.0.0
6767
def add(host)
6868
address = Address.new(host)
69-
unless addresses.include?(address) || (@topology.single? && address.seed != @topology.seed)
69+
if !addresses.include?(address) || direct_connection?(address)
7070
log_debug([ "Adding #{address.to_s} to the cluster." ])
7171
addresses.push(address)
7272
server = Server.new(address, event_listeners,
@@ -201,5 +201,11 @@ def self.create(client)
201201
cluster = Cluster.new(client.cluster.addresses.map(&:to_s), client.options)
202202
client.instance_variable_set(:@cluster, cluster)
203203
end
204+
205+
private
206+
207+
def direct_connection?(address)
208+
@topology.single? && address.seed == @topology.seed
209+
end
204210
end
205211
end

0 commit comments

Comments
 (0)