New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mongodb

Package Overview
Dependencies
Maintainers
1
Versions
621
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongodb - npm Package Compare versions

Comparing version 1.3.1 to 1.3.2

67

lib/mongodb/connection/base.js

@@ -168,3 +168,10 @@ var EventEmitter = require('events').EventEmitter

DbStore.prototype.add = function(db) {
this._dbs.push(db);
// this._dbs.push(db);
var found = false;
// Only add if it does not exist already
for(var i = 0; i < this._dbs.length; i++) {
if(db.databaseName == this._dbs[i].databaseName) found = true;
}
if(!found) this._dbs.push(db);
}

@@ -176,11 +183,22 @@

DbStore.prototype.emit = function(event, message, object, reset) {
DbStore.prototype.emit = function(event, message, object, reset, filterDb) {
if(reset) {
while(this._dbs.length > 0) {
var db = this._dbs.shift();
db.emit(event, message, object);
// Only emit if there is a listener
if(db.listeners(event).length > 0) {
if(filterDb == null || filterDb.databaseName !== db.databaseName
|| filterDb.tag !== db.tag) {
db.emit(event, message, object);
}
}
}
} else {
for(var i = 0; i < this._dbs.length; i++) {
this._dbs[i].emit(event, message, object);
if(this._dbs[i].listeners(event).length > 0) {
if(filterDb == null || filterDb.databaseName !== this._dbs[i].databaseName
|| filterDb.tag !== this._dbs[i].tag) {
this._dbs[i].emit(event, message, object);
}
}
}

@@ -438,40 +456,13 @@ }

Base.prototype._emitAcrossAllDbInstances = function(server, filterDb, event, message, object, resetConnection) {
// Emit close event across all db instances sharing the sockets
var allServerInstances = server.allServerInstances();
// Fetch the first server instance
var serverInstance = allServerInstances[0];
// For all db instances signal all db instances
if(serverInstance && Array.isArray(serverInstance.dbInstances) && serverInstance.dbInstances.length >= 1) {
for(var i = 0; i < serverInstance.dbInstances.length; i++) {
var dbInstance = serverInstance.dbInstances[i];
// Set the parent
if(resetConnection && typeof dbInstance.openCalled != 'undefined')
dbInstance.openCalled = false;
// Check if it's our current db instance and skip if it is
if(filterDb == null || filterDb.databaseName !== dbInstance.databaseName || filterDb.tag !== dbInstance.tag) {
// Only emit if there is a listener
if(dbInstance.listeners(event).length > 0)
dbInstance.emit(event, message, object);
}
if(resetConnection) {
for(var i = 0; i < this._dbStore._dbs.length; i++) {
if(typeof this._dbStore._dbs[i].openCalled != 'undefined')
this._dbStore._dbs[i].openCalled = false;
}
}
// Fire event
this._dbStore.emit(event, message, object, resetConnection, filterDb);
}
// Base.prototype._timeoutCalls = function(timeoutMargin) {
// NOT SURE WE CAN DO THIS
// var currentDateTime = new Date().getTime();
// for(var id in this._callBackStore_notReplied) {
// var reply = this._callBackStore_notReplied;
// if((currentDateTime - reply.start) > timeoutMargin) {
// this._callHandler(id, null, new Error("call timed out"));
// }
// }
// }
exports.Base = Base;

@@ -31,9 +31,20 @@ var DbCommand = require('../../commands/db_command').DbCommand

if(candidate_servers.length == 0) {
return setTimeout(function() {
self.start();
}, this.options.haInterval);
return;
}
var server = candidate_servers.pop();
var self = this;
// var server = candidate_servers.pop();
var server = null;
// Locate a server that is connected and use that for HA
for(var i = 0; i < candidate_servers.length; i++) {
if(candidate_servers[i].isConnected()) {
server = candidate_servers[i];
break;
}
}
// No server connected let's pick one randomly and try to connect
if(server == null) {
server = candidate_servers[Math.round(Math.random(1000000) * (candidate_servers.length - 1))];
}

@@ -109,9 +120,2 @@ // Unpack connection options

return function() {
// There are no servers available at all (no HA possible)
if(self.replset._state
&& Object.keys(self.replset._state.addresses).length == 0) {
self.state = HighAvailabilityProcess.STOPPED;
return;
}
if(self.state == HighAvailabilityProcess.STOPPED) {

@@ -121,2 +125,3 @@ // Stop all server instances

self.replset._state.addresses[name].close();
delete self.replset._state.addresses[name];
}

@@ -128,6 +133,2 @@

// // We are going to process all the non-replied to callbacks timing out any that has gone over the socket time out settings
// if(typeof self.options.socketTimeoutMS == 'number' && self.options.socketTimeoutMS > 0)
// self.replset._timeoutCalls(self.options.socketTimeoutMS * 1.1);
// If the server is connected

@@ -393,6 +394,4 @@ if(self.server.isConnected() && !self._haProcessInProcess) {

self._serverState = ReplSet.REPLSET_READ_ONLY;
delete self._state.addresses[server.name];
} else if(self._state.isSecondary(server)) {
delete self._state.secondaries[server.name];
delete self._state.addresses[server.name];
}

@@ -399,0 +398,0 @@

@@ -35,9 +35,6 @@ /**

var candidate_servers = [];
if(this.master && this.master.isConnected())
candidate_servers.push(this.master);
for(var name in this.addresses) {
candidate_servers.push(this.addresses[name]);
}
for(var name in this.secondaries) {
if(this.secondaries[name].isConnected())
candidate_servers.push(this.secondaries[name]);
}
// Return all possible read candidates

@@ -44,0 +41,0 @@ return candidate_servers;

@@ -99,3 +99,3 @@ var ReadPreference = require('../read_preference').ReadPreference

// Set up a clean state
this._state = new ReplSetState();
this._state = new ReplSetState();
// Ensure up the server callbacks

@@ -221,4 +221,2 @@ for(var i = 0; i < this.servers.length; i++) {

this._haProcess.stop();
// Clear out any db emits
this._dbStore.reset();

@@ -234,2 +232,5 @@ // If we have a strategy stop it

}
// Clean out the state
this._state = new ReplSetState();

@@ -239,3 +240,2 @@ // Emit close event

self._emitAcrossAllDbInstances(self, null, "close", null, null, true)
// self.options.db.emit("close");
});

@@ -309,3 +309,3 @@

self._serverState = ReplSet.REPLSET_READ_ONLY;
delete self._state.addresses[server.name];
// delete self._state.addresses[server.name];

@@ -322,3 +322,3 @@ if(current_master != null) {

delete self._state.secondaries[server.name];
delete self._state.addresses[server.name];
// delete self._state.addresses[server.name];
}

@@ -325,0 +325,0 @@

{ "name" : "mongodb"
, "description" : "A node.js driver for MongoDB"
, "keywords" : ["mongodb", "mongo", "driver", "db"]
, "version" : "1.3.1"
, "version" : "1.3.2"
, "author" : "Christian Amor Kvalheim <christkv@gmail.com>"

@@ -6,0 +6,0 @@ , "contributors" : [ "Aaron Heckmann",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc