From 790e55e8811fd671247fead6053c261c33438c46 Mon Sep 17 00:00:00 2001 From: Adam Mckaig Date: Wed, 20 Nov 2013 11:47:52 -0500 Subject: [PATCH] Add more verbose error for ECONNREFUSED If the tunnel server can be reached (at e.g. http://localtunnel.me/?new) but the tunnel (to e.g. grpi.localtunnel.me:44827) can't actually be established, the client currently gets stuck in a loop retrying forever with no indication as to what's wrong. This doesn't fix the loop, since it does seem desirable to retry forever, but logs: [Error: connection refused: localtunnel.me:44827] --- client.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client.js b/client.js index 748efd0..404b5a8 100644 --- a/client.js +++ b/client.js @@ -62,7 +62,13 @@ var connect = function(opt) { var remote = net.connect(remote_opt); remote.once('error', function(err) { - if (err.code !== 'ECONNREFUSED') { + + // emit connection refused errors immediately, because they + // indicate that the tunnel can't be established. + if (err.code === 'ECONNREFUSED') { + ev.emit('error', new Error('connection refused: ' + remote_host + ':' + remote_port + ' (check your firewall settings)')); + } + else { remote.emit('error', err); }