aboutsummaryrefslogtreecommitdiff
path: root/node_modules/mongodb/lib/replset.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/mongodb/lib/replset.js')
-rw-r--r--node_modules/mongodb/lib/replset.js48
1 files changed, 35 insertions, 13 deletions
diff --git a/node_modules/mongodb/lib/replset.js b/node_modules/mongodb/lib/replset.js
index d740464..5bf6026 100644
--- a/node_modules/mongodb/lib/replset.js
+++ b/node_modules/mongodb/lib/replset.js
@@ -21,8 +21,8 @@ var EventEmitter = require('events').EventEmitter
, MAX_JS_INT = require('./utils').MAX_JS_INT
, translateOptions = require('./utils').translateOptions
, filterOptions = require('./utils').filterOptions
- , mergeOptions = require('./utils').mergeOptions;
-
+ , mergeOptions = require('./utils').mergeOptions
+ , os = require('os');
/**
* @fileOverview The **ReplSet** class is a class that represents a Replicaset topology and is
* used to construct connections.
@@ -48,7 +48,15 @@ var legalOptionNames = ['ha', 'haInterval', 'replicaSet', 'rs_name', 'secondaryA
, 'sslCA', 'sslCert', 'sslKey', 'sslPass', 'socketOptions', 'bufferMaxEntries'
, 'store', 'auto_reconnect', 'autoReconnect', 'emitError'
, 'keepAlive', 'noDelay', 'connectTimeoutMS', 'socketTimeoutMS', 'strategy', 'debug'
- , 'loggerLevel', 'logger', 'reconnectTries'];
+ , 'loggerLevel', 'logger', 'reconnectTries', 'appname', 'domainsEnabled'];
+
+// Get package.json variable
+var driverVersion = require(__dirname + '/../package.json').version;
+var nodejsversion = f('Node.js %s, %s', process.version, os.endianness());
+var type = os.type();
+var name = process.platform;
+var architecture = process.arch;
+var release = os.release();
/**
* Creates a new ReplSet instance
@@ -74,6 +82,7 @@ var legalOptionNames = ['ha', 'haInterval', 'replicaSet', 'rs_name', 'secondaryA
* @param {number} [options.socketOptions.keepAlive=0] TCP KeepAlive on the socket with a X ms delay before start.
* @param {number} [options.socketOptions.connectTimeoutMS=10000] TCP Connection timeout setting
* @param {number} [options.socketOptions.socketTimeoutMS=0] TCP Socket timeout setting
+ * @param {boolean} [options.domainsEnabled=false] Enable the wrapping of the callback in the current domain, disabled by default to avoid perf hit.
* @fires ReplSet#connect
* @fires ReplSet#ha
* @fires ReplSet#joined
@@ -117,13 +126,6 @@ var ReplSet = function(servers, options) {
return {host: x.host, port: x.port}
});
- // console.log("!!!!!!!!!!!!!!!!!!!!!!!!!! RECONNECT")
- // console.dir(options)
-
- // // Get the reconnect option
- // var reconnect = typeof options.auto_reconnect == 'boolean' ? options.auto_reconnect : false;
- // reconnect = typeof options.autoReconnect == 'boolean' ? options.autoReconnect : reconnect;
-
// Clone options
var clonedOptions = mergeOptions({}, {
disconnectHandler: store,
@@ -147,8 +149,28 @@ var ReplSet = function(servers, options) {
clonedOptions.keepAlive = clonedOptions.keepAlive > 0;
}
- // console.log("=============== create CReplSet")
- // console.dir(clonedOptions)
+ // Client info
+ this.clientInfo = {
+ driver: {
+ name: "nodejs",
+ version: driverVersion
+ },
+ os: {
+ type: type,
+ name: name,
+ architecture: architecture,
+ version: release
+ },
+ platform: nodejsversion
+ }
+
+ // Build default client information
+ clonedOptions.clientInfo = this.clientInfo;
+ // Do we have an application specific string
+ if(options.appname) {
+ clonedOptions.clientInfo.application = { name: options.appname };
+ }
+
// Create the ReplSet
var replset = new CReplSet(seedlist, clonedOptions);
// Server capabilities
@@ -216,7 +238,7 @@ var translateReadPreference = function(options) {
options.readPreference = new CoreReadPreference(options.readPreference);
} else if(options.readPreference instanceof ReadPreference) {
options.readPreference = new CoreReadPreference(options.readPreference.mode
- , options.readPreference.tags);
+ , options.readPreference.tags, {maxStalenessMS: options.readPreference.maxStalenessMS});
}
return options;