Skip to content

Commit d6e8936

Browse files
committed
fix(topology): respect the force parameter for topology close
NODE-2155
1 parent ad21767 commit d6e8936

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

lib/core/sdam/topology.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,15 @@ class Topology extends EventEmitter {
291291
* Close this topology
292292
*/
293293
close(options, callback) {
294-
if (typeof options === 'function') (callback = options), (options = {});
294+
if (typeof options === 'function') {
295+
callback = options;
296+
options = {};
297+
}
298+
299+
if (typeof options === 'boolean') {
300+
options = { force: options };
301+
}
302+
295303
options = options || {};
296304

297305
// clear all existing monitor timers
@@ -332,7 +340,7 @@ class Topology extends EventEmitter {
332340
// destroy all child servers
333341
let destroyed = 0;
334342
servers.forEach(server =>
335-
destroyServer(server, this, () => {
343+
destroyServer(server, this, options, () => {
336344
destroyed++;
337345
if (destroyed === servers.size) {
338346
// emit an event for close
@@ -736,10 +744,11 @@ function isWriteCommand(command) {
736744
*
737745
* @param {Server} server
738746
*/
739-
function destroyServer(server, topology, callback) {
747+
function destroyServer(server, topology, options, callback) {
748+
options = options || {};
740749
LOCAL_SERVER_EVENTS.forEach(event => server.removeAllListeners(event));
741750

742-
server.destroy(() => {
751+
server.destroy(options, () => {
743752
topology.emit(
744753
'serverClosed',
745754
new monitoring.ServerClosedEvent(topology.s.id, server.description.address)

0 commit comments

Comments
 (0)