aboutsummaryrefslogtreecommitdiff
path: root/node_modules/mongodb/lib/mongos.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/mongodb/lib/mongos.js')
-rw-r--r--node_modules/mongodb/lib/mongos.js36
1 files changed, 34 insertions, 2 deletions
diff --git a/node_modules/mongodb/lib/mongos.js b/node_modules/mongodb/lib/mongos.js
index 460f93f..b6e4635 100644
--- a/node_modules/mongodb/lib/mongos.js
+++ b/node_modules/mongodb/lib/mongos.js
@@ -17,7 +17,16 @@ 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');
+
+// 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();
/**
* @fileOverview The **Mongos** class is a class that represents a Mongos Proxy topology and is
@@ -44,7 +53,7 @@ var EventEmitter = require('events').EventEmitter
, 'sslCA', 'sslCert', 'sslKey', 'sslPass', 'socketOptions', 'bufferMaxEntries'
, 'store', 'auto_reconnect', 'autoReconnect', 'emitError'
, 'keepAlive', 'noDelay', 'connectTimeoutMS', 'socketTimeoutMS'
- , 'loggerLevel', 'logger', 'reconnectTries'];
+ , 'loggerLevel', 'logger', 'reconnectTries', 'appname', 'domainsEnabled'];
/**
* Creates a new Mongos instance
@@ -68,6 +77,7 @@ var EventEmitter = require('events').EventEmitter
* @param {number} [options.socketOptions.keepAlive=0] TCP KeepAlive on the socket with a X ms delay before start.
* @param {number} [options.socketOptions.connectTimeoutMS=0] 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 Mongos#connect
* @fires Mongos#ha
* @fires Mongos#joined
@@ -139,6 +149,28 @@ var Mongos = function(servers, options) {
clonedOptions.keepAlive = clonedOptions.keepAlive > 0;
}
+ // Build default client information
+ 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 Mongos
var mongos = new CMongos(seedlist, clonedOptions)
// Server capabilities