expect-telnet
Advanced tools
Comparing version
24
index.js
@@ -7,5 +7,10 @@ "use strict"; | ||
function endSocket(socket) { | ||
socket.removeAllListeners("data").removeAllListeners("error").end(); | ||
socket.removeAllListeners("data").removeAllListeners("error"); | ||
socket.destroy(); | ||
} | ||
function formatHostPort(uri) { | ||
return url.format(uri).replace(/^.+\/\//, "").replace(/\/$/, ""); | ||
} | ||
module.exports = function(dest, seq, opts, cb) { | ||
@@ -16,10 +21,12 @@ var socket = new net.Socket(), interacting, saved = ""; | ||
dest = url.parse("http://" + dest); | ||
socket.setTimeout(opts.timeout || TIMEOUT); | ||
socket.once("timeout", socket.destroy); | ||
socket.once("connect", socket.setNoDelay.bind(socket)); | ||
dest = url.parse("http://" + dest); | ||
socket.connect(dest.port, dest.hostname); | ||
socket.once("timeout", function() { | ||
endSocket(socket); | ||
cb(new Error("Timeout connecting to " + formatHostPort(dest))); | ||
}); | ||
socket.on("error", function(err) { | ||
socket.once("error", function(err) { | ||
if (interacting) interacting = false; | ||
@@ -29,2 +36,7 @@ endSocket(socket); | ||
}); | ||
socket.once("connect", socket.setNoDelay.bind(socket)); | ||
socket.connect(dest.port, dest.hostname); | ||
socket.on("end", function() { | ||
@@ -31,0 +43,0 @@ if (interacting) { |
{ | ||
"name": "expect-telnet", | ||
"version": "0.5.4", | ||
"version": "0.5.5", | ||
"description": "telnet automation through expect-send sequences, like in Tcl", | ||
@@ -5,0 +5,0 @@ "author": "silverwind <me@silverwind.io> (https://github.com/silverwind)", |
@@ -1,2 +0,3 @@ | ||
# expect-telnet [](https://www.npmjs.org/package/expect-telnet) [](https://david-dm.org/silverwind/expect-telnet) | ||
# expect-telnet | ||
[](https://www.npmjs.org/package/expect-telnet) [](https://www.npmjs.org/package/expect-telnet) [](https://travis-ci.org/silverwind/expect-telnet) | ||
> telnet automation through expect-send sequences, like in Tcl. | ||
@@ -3,0 +4,0 @@ |
6549
4.57%89
8.54%56
1.82%