Allows Tor configuration to be modified at runtime via the rpc interface
This commit is contained in:
parent
38bf4d7c6a
commit
48373e3c71
|
@ -146,6 +146,40 @@ class ControlServer {
|
||||||
this.nconf.set('loadBalanceMethod', loadBalanceMethod);
|
this.nconf.set('loadBalanceMethod', loadBalanceMethod);
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}).bind(this));
|
}).bind(this));
|
||||||
|
|
||||||
|
server.expose('getInstanceConfigByName', (function (name, keyword) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this.torPool.get_config_by_name(name, keyword, (error, value) => {
|
||||||
|
if (error) reject(error);
|
||||||
|
else resolve(value);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).bind(this));
|
||||||
|
|
||||||
|
server.expose('getInstanceConfigAt', (function (index, keyword) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this.torPool.get_config_at(index, keyword, (error, value) => {
|
||||||
|
if (error) reject(error);
|
||||||
|
else resolve(value);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).bind(this));
|
||||||
|
|
||||||
|
server.expose('setInstanceConfigByName', (function (name, keyword, value) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this.torPool.set_config_by_name(name, keyword, value, (error) => {
|
||||||
|
if (error) reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).bind(this));
|
||||||
|
|
||||||
|
server.expose('setInstanceConfigAt', (function (index, keyword, value) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this.torPool.set_config_at(index, keyword, value, (error) => {
|
||||||
|
if (error) reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
listen(port, callback) {
|
listen(port, callback) {
|
||||||
|
|
|
@ -164,6 +164,30 @@ class TorPool extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* End Deprecated */
|
/* End Deprecated */
|
||||||
|
|
||||||
|
get_config_by_name(name, keyword, callback) {
|
||||||
|
let instance = this.instance_by_name(name);
|
||||||
|
if (!instance) return callback && callback(new Error(`Instance "${name}" not found`));
|
||||||
|
instance.get_config(keyword, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_config_by_name(name, keyword, value, callback) {
|
||||||
|
let instance = this.instance_by_name(name);
|
||||||
|
if (!instance) return callback && callback(new Error(`Instance "${name}" not found`));
|
||||||
|
instance.set_config(keyword, value, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
get_config_at(index, keyword, callback) {
|
||||||
|
let instance = this.instances[index];
|
||||||
|
if (!instance) return callback && callback(new Error(`Instance at ${index} not found`));
|
||||||
|
instance.get_config(keyword, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_config_at(index, keyword, value, callback) {
|
||||||
|
let instance = this.instances[index];
|
||||||
|
if (!instance) return callback && callback(new Error(`Instance at ${index} not found`));
|
||||||
|
instance.set_config(keyword, value, callback);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
TorPool.LoadBalanceMethods = load_balance_methods;
|
TorPool.LoadBalanceMethods = load_balance_methods;
|
||||||
|
|
|
@ -68,12 +68,21 @@ class TorProcess extends EventEmitter {
|
||||||
return this._controller || null;
|
return this._controller || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
getConfig(callback) {
|
/* Passthrough to granax */
|
||||||
|
get_config(keyword, callback) {
|
||||||
if (!this.controller) {
|
if (!this.controller) {
|
||||||
return callback(new Error(`Controller is not connected`));
|
return callback(new Error(`Controller is not connected`));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.controller.getConfig(keyword, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_config(keyword, value, callback) {
|
||||||
|
if (!this.controller) {
|
||||||
|
return callback(new Error(`Controller is not connected`));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.controller.setConfig(keyword, value, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
create(callback) {
|
create(callback) {
|
||||||
|
|
Loading…
Reference in a new issue