telnet-client
Advanced tools
Comparing version 1.4.6 to 1.4.7
@@ -221,3 +221,3 @@ 'use strict' | ||
this.maxBufferLength = opts.maxBufferLength || this.maxBufferLength | ||
this.waitfor = (opts.waitfor ? (opts.waitfor instanceof RegExp ? opts.waitfor : RegExp(opts.waitfor)) : false); | ||
this.waitfor = (opts.waitfor ? (opts.waitfor instanceof RegExp ? opts.waitfor : RegExp(opts.waitfor)) : false) | ||
} | ||
@@ -228,34 +228,38 @@ | ||
if (this.socket.writable) { | ||
this.socket.write(data, () => { | ||
let response = '' | ||
this.state = 'standby' | ||
this.on('data', sendHandler) | ||
let response = '' | ||
try | ||
{ | ||
this.socket.write(data, () => { | ||
this.state = 'standby' | ||
if (!this.waitfor || !opts) { | ||
setTimeout(() => { | ||
if (response === '') { | ||
this.removeListener('data', sendHandler) | ||
reject(new Error('response not received')) | ||
return | ||
} | ||
this.on('data', sendHandler) | ||
this.removeListener('data', sendHandler) | ||
resolve(response) | ||
}, this.sendTimeout) | ||
} | ||
}) | ||
} | ||
catch(e) | ||
{ | ||
this.removeListener('data', sendHandler) | ||
reject(new Error('send data failed')) | ||
} | ||
const self = this | ||
function sendHandler(data) { | ||
response += data.toString() | ||
if (!this.waitfor || !opts) { | ||
setTimeout(() => { | ||
if (response === '') { | ||
this.removeListener('data', sendHandler) | ||
reject(new Error('response not received')) | ||
return | ||
} | ||
if (self.waitfor) { | ||
if (!self.waitfor.test(response)) return | ||
this.removeListener('data', sendHandler) | ||
resolve(response) | ||
}, this.sendTimeout) | ||
self.removeListener('data', sendHandler) | ||
resolve(response) | ||
} | ||
const self = this | ||
function sendHandler(data) { | ||
response += data.toString() | ||
if (self.waitfor) { | ||
if (!self.waitfor.test(response)) return | ||
self.removeListener('data', sendHandler) | ||
resolve(response) | ||
} | ||
} | ||
}) | ||
} | ||
} else { | ||
@@ -262,0 +266,0 @@ reject(new Error('socket not writable')) |
@@ -8,3 +8,3 @@ { | ||
}, | ||
"version": "1.4.6", | ||
"version": "1.4.7", | ||
"main": "./lib/index.js", | ||
@@ -11,0 +11,0 @@ "types": "./lib/index.d.ts", |
50354
1089