track the global config and pass it to the host objects on creation
This commit is contained in:
@ -23,8 +23,9 @@ Host.defaultPorts = {
|
|||||||
https: 443
|
https: 443
|
||||||
};
|
};
|
||||||
|
|
||||||
function Host(config) {
|
function Host(config, globalConfig) {
|
||||||
config = config || {};
|
config = config || {};
|
||||||
|
globalConfig = globalConfig || {};
|
||||||
|
|
||||||
// defaults
|
// defaults
|
||||||
this.protocol = 'http';
|
this.protocol = 'http';
|
||||||
@ -34,7 +35,7 @@ function Host(config) {
|
|||||||
this.auth = null;
|
this.auth = null;
|
||||||
this.query = null;
|
this.query = null;
|
||||||
this.headers = null;
|
this.headers = null;
|
||||||
this.suggestCompression = false;
|
this.suggestCompression = !!globalConfig.suggestCompression;
|
||||||
|
|
||||||
if (typeof config === 'string') {
|
if (typeof config === 'string') {
|
||||||
if (!startsWithProtocolRE.test(config)) {
|
if (!startsWithProtocolRE.test(config)) {
|
||||||
|
|||||||
@ -12,7 +12,7 @@ var patchSniffOnConnectionFault = require('./transport/sniff_on_connection_fault
|
|||||||
|
|
||||||
function Transport(config) {
|
function Transport(config) {
|
||||||
var self = this;
|
var self = this;
|
||||||
config = config || {};
|
config = self._config = config || {};
|
||||||
|
|
||||||
var LogClass = (typeof config.log === 'function') ? config.log : require('./log');
|
var LogClass = (typeof config.log === 'function') ? config.log : require('./log');
|
||||||
config.log = this.log = new LogClass(config);
|
config.log = this.log = new LogClass(config);
|
||||||
@ -60,7 +60,7 @@ function Transport(config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var hosts = _.map(hostsConfig, function (conf) {
|
var hosts = _.map(hostsConfig, function (conf) {
|
||||||
return (conf instanceof Host) ? conf : new Host(conf);
|
return (conf instanceof Host) ? conf : new Host(conf, self._config);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (randomizeHosts) {
|
if (randomizeHosts) {
|
||||||
@ -339,6 +339,7 @@ Transport.prototype.sniff = function (cb) {
|
|||||||
var connectionPool = this.connectionPool;
|
var connectionPool = this.connectionPool;
|
||||||
var nodesToHostCallback = this.nodesToHostCallback;
|
var nodesToHostCallback = this.nodesToHostCallback;
|
||||||
var log = this.log;
|
var log = this.log;
|
||||||
|
var globalConfig = this._config;
|
||||||
|
|
||||||
// make cb a function if it isn't
|
// make cb a function if it isn't
|
||||||
cb = typeof cb === 'function' ? cb : _.noop;
|
cb = typeof cb === 'function' ? cb : _.noop;
|
||||||
@ -359,7 +360,7 @@ Transport.prototype.sniff = function (cb) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
connectionPool.setHosts(_.map(hostsConfigs, function (hostConfig) {
|
connectionPool.setHosts(_.map(hostsConfigs, function (hostConfig) {
|
||||||
return new Host(hostConfig);
|
return new Host(hostConfig, globalConfig);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
cb(err, resp, status);
|
cb(err, resp, status);
|
||||||
|
|||||||
Reference in New Issue
Block a user