Skip to content

Commit 19549ff

Browse files
committed
fix(replset): use correct topologyId for event emission
NODE-2268
1 parent d4c3a2a commit 19549ff

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

lib/core/topologies/server.js

+8-12
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ var serverAccounting = false;
5555
var servers = {};
5656
var BSON = retrieveBSON();
5757

58+
function topologyId(server) {
59+
return server.s.parent == null ? server.id : server.s.parent.id;
60+
}
61+
5862
/**
5963
* Creates a new Server instance
6064
* @class
@@ -151,8 +155,6 @@ var Server = function(options) {
151155
// Monitoring timeout
152156
monitoringInterval:
153157
typeof options.monitoringInterval === 'number' ? options.monitoringInterval : 5000,
154-
// Topology id
155-
topologyId: -1,
156158
compression: { compressors: createCompressionInfo(options) },
157159
// Optional parent topology
158160
parent: options.parent
@@ -486,14 +488,11 @@ Server.prototype.connect = function(options) {
486488

487489
// Emit toplogy opening event if not in topology
488490
if (!self.s.inTopology) {
489-
this.emit('topologyOpening', { topologyId: self.id });
491+
this.emit('topologyOpening', { topologyId: topologyId(self) });
490492
}
491493

492494
// Emit opening server event
493-
self.emit('serverOpening', {
494-
topologyId: self.s.topologyId !== -1 ? self.s.topologyId : self.id,
495-
address: self.name
496-
});
495+
self.emit('serverOpening', { topologyId: topologyId(self), address: self.name });
497496

498497
self.s.pool.connect();
499498
};
@@ -883,14 +882,11 @@ Server.prototype.destroy = function(options, callback) {
883882

884883
// Emit opening server event
885884
if (self.listeners('serverClosed').length > 0)
886-
self.emit('serverClosed', {
887-
topologyId: self.s.topologyId !== -1 ? self.s.topologyId : self.id,
888-
address: self.name
889-
});
885+
self.emit('serverClosed', { topologyId: topologyId(self), address: self.name });
890886

891887
// Emit toplogy opening event if not in topology
892888
if (self.listeners('topologyClosed').length > 0 && !self.s.inTopology) {
893-
self.emit('topologyClosed', { topologyId: self.id });
889+
self.emit('topologyClosed', { topologyId: topologyId(self) });
894890
}
895891

896892
if (self.s.logger.isDebug()) {

0 commit comments

Comments
 (0)