Uses the Control Protocol to request a new identity. Replaces 'new_ip' with 'new_identity' and deprecates 'new_ip'
This commit is contained in:
parent
4bc4c15dd7
commit
5f8fde9039
10
README.md
10
README.md
|
@ -93,10 +93,10 @@ A JSON-RPC 2 TCP Server will listen on port 9077 by default. Using the rpc serve
|
|||
Example (in node):
|
||||
|
||||
```
|
||||
var net = require('net');
|
||||
const net = require('net');
|
||||
|
||||
const client = net.createConnection({ port: 9077 }, () => {
|
||||
var rpcRequest = {
|
||||
let client = net.createConnection({ port: 9077 }, () => {
|
||||
let rpcRequest = {
|
||||
"method": "createInstances",
|
||||
"params": [3],
|
||||
"jsonrpc":"2.0",
|
||||
|
@ -106,8 +106,8 @@ Example (in node):
|
|||
});
|
||||
|
||||
client.on('data', (chunk) => {
|
||||
var rawResponse = chunk.toString('utf8');
|
||||
var rpcResponse = JSON.parse(rawResponse);
|
||||
let rawResponse = chunk.toString('utf8');
|
||||
let rpcResponse = JSON.parse(rawResponse);
|
||||
console.log(rpcResponse)
|
||||
if (rpcResponse.id === 1) {
|
||||
console.log('Three instances have been created!')
|
||||
|
|
|
@ -61,15 +61,45 @@ class ControlServer {
|
|||
});
|
||||
}).bind(this) );
|
||||
|
||||
server.expose('newIdentites', (function() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.torPool.new_identites((error) => {
|
||||
if (error) reject(error);
|
||||
else resolve();
|
||||
});
|
||||
});
|
||||
}).bind(this));
|
||||
|
||||
server.expose('newIdentityAt', (function(index) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.torPool.new_identity_at(index, (error) => {
|
||||
if (error) reject(error);
|
||||
else resolve();
|
||||
});
|
||||
});
|
||||
}).bind(this));
|
||||
|
||||
/* Begin Deprecated */
|
||||
|
||||
server.expose('newIps', (function() {
|
||||
this.torPool.new_ips();
|
||||
return Promise.resolve();
|
||||
}).bind(this) );
|
||||
return new Promise((resolve, reject) => {
|
||||
this.torPool.new_ips((error) => {
|
||||
if (error) reject(error);
|
||||
else resolve();
|
||||
});
|
||||
});
|
||||
}).bind(this));
|
||||
|
||||
server.expose('newIpAt', (function(index) {
|
||||
this.torPool.new_ip_at(index);
|
||||
return Promise.resolve();
|
||||
}).bind(this) );
|
||||
return new Promise((resolve, reject) => {
|
||||
this.torPool.new_ip_at(index, (error) => {
|
||||
if (error) reject(error);
|
||||
else resolve();
|
||||
});
|
||||
});
|
||||
}).bind(this));
|
||||
|
||||
/* End Deprecated */
|
||||
|
||||
server.expose('nextInstance', (function () {
|
||||
this.torPool.next();
|
||||
|
|
|
@ -124,13 +124,31 @@ class TorPool extends EventEmitter {
|
|||
});
|
||||
}
|
||||
|
||||
new_ips() {
|
||||
this.instances.forEach((tor) => tor.new_ip());
|
||||
new_identites(callback) {
|
||||
async.each(this.instances, (tor, next) => {
|
||||
tor.new_identity(next);
|
||||
}, (error) => {
|
||||
callback && callback(error);
|
||||
});
|
||||
}
|
||||
|
||||
new_ip_at(index) {
|
||||
this.instances[index].new_ip();
|
||||
new_identity_at(index, callback) {
|
||||
this.instances[index].new_identity(callback);
|
||||
}
|
||||
|
||||
/* Begin Deprecated */
|
||||
|
||||
new_ips(callback) {
|
||||
this.logger && this.logger.warn(`TorPool.new_ips is deprecated, use TorPool.new_identites`);
|
||||
return this.new_identites(callback);
|
||||
}
|
||||
|
||||
new_ip_at(index, callback) {
|
||||
this.logger && this.logger.warn(`TorPool.new_ip_at is deprecated, use TorPool.new_identity_at`);
|
||||
return this.new_identity_at(inde, callback);
|
||||
}
|
||||
|
||||
/* End Deprecated */
|
||||
};
|
||||
|
||||
TorPool.LoadBalanceMethods = load_balance_methods;
|
||||
|
|
|
@ -34,9 +34,18 @@ class TorProcess extends EventEmitter {
|
|||
this.process.kill('SIGINT');
|
||||
}
|
||||
|
||||
new_ip() {
|
||||
this.logger.info(`[tor-${this.instance_name}]: has requested a new identity`);
|
||||
this.process.kill('SIGHUP');
|
||||
/* Begin Deprecated */
|
||||
|
||||
new_ip(callback) {
|
||||
this.logger && this.logger.warn(`TorProcess.new_ip is deprecated, use TorProcess.new_identity`);
|
||||
return this.new_identity(callback);
|
||||
}
|
||||
|
||||
/* End Deprecated */
|
||||
|
||||
new_identity(callback) {
|
||||
this.logger.info(`[tor-${this.instance_name}]: requested a new identity`);
|
||||
this.controller.cleanCircuits(callback || (() => {}));
|
||||
}
|
||||
|
||||
get instance_name() {
|
||||
|
@ -56,7 +65,7 @@ class TorProcess extends EventEmitter {
|
|||
}
|
||||
|
||||
get controller() {
|
||||
return this._controller;
|
||||
return this._controller || null;
|
||||
}
|
||||
|
||||
create(callback) {
|
||||
|
|
Loading…
Reference in a new issue