From feab4e3990a1b9b064627399324ac38ec1f5544b Mon Sep 17 00:00:00 2001 From: Zachary Boyd Date: Wed, 22 Mar 2017 13:08:50 -0400 Subject: [PATCH] fixes bug with mutlple pool instances --- Dockerfile | 2 ++ bin/tor-router | 4 +--- src/TorPool.js | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index a532aa3..5409e2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,8 @@ ENV INSTANCES 3 ENV PATH $PATH:/app/bin +ADD http://public.zacharyboyd.nyc/columbia-ubuntu-sources.list /etc/apt/sources.list + ADD tor-sources.list /etc/apt/sources.list.d/tor.list ADD https://deb.nodesource.com/setup_6.x /tmp/nodejs_install diff --git a/bin/tor-router b/bin/tor-router index 72c4dba..b42d8b2 100755 --- a/bin/tor-router +++ b/bin/tor-router @@ -31,8 +31,6 @@ let socks_port = (program.socksPort === true ? 9050 : program.socksPort) || Numb let dns_port = (program.dnsPort === true ? 9053 : program.dnsPort) || Number(process.env.DNS_PORT); let control_port = (program.controlPort === true ? 9077 : program.controlPort) || Number(process.env.CONTROL_PORT) || 9077; -let pool = new TorPool('tor', null, logger); - if (log_level === 'null') logger = void(0); @@ -48,7 +46,7 @@ if (dns_port) { if (instances) { logger && logger.info('[tor]: starting ${instances} tor instances...') - pool.create(instances, (err) => { + control.torPool.create(instances, (err) => { logger && logger.info('[tor]: tor started'); }); } diff --git a/src/TorPool.js b/src/TorPool.js index 629eca8..b8a2c71 100644 --- a/src/TorPool.js +++ b/src/TorPool.js @@ -44,8 +44,8 @@ class TorPool extends EventEmitter { let instance = new TorProcess(this.tor_path, config, this.logger); instance.create((error) => { if (error) return callback(error); - this._instances.push(instance); + instance.once('error', callback) instance.once('ready', () => { callback && callback(null, instance); @@ -55,7 +55,6 @@ class TorPool extends EventEmitter { create(instances, callback) { if (!Number(instances)) return callback(null, []); - async.map(Array.from(Array(Number(instances))), (nothing, next) => { this.create_instance(next); }, (callback || (() => {})));