re-re-fix Ping node to assemble full result before parsing....

This commit is contained in:
Dave C-J 2014-11-07 11:44:04 +00:00
parent ebbd9f4494
commit d47b7f57a2
2 changed files with 10 additions and 10 deletions

View File

@ -32,21 +32,21 @@ module.exports = function(RED) {
else if (plat == "darwin") { ex = spawn('ping', ['-n', '-t', '5', '-c', '1', node.host]); }
else { node.error("Sorry - your platform - "+plat+" - is not recognised."); }
var res = false;
var line = "";
//var regex = /from.*time.(.*)ms/;
var regex = /=.*[<|=]([0-9]*).*TTL|ttl..*=([0-9\.]*)/;
ex.stdout.on('data', function (data) {
//console.log('[ping] stdout: ' + data.toString());
var regex = /=.*[<|=]([0-9]*).*TTL|ttl..*=([0-9]*)/;
//var regex = /from.*time.(.*)ms/;
var m = regex.exec(data.toString())||"";
if (m !== '') {
if (m[1]) { res = Number(m[1]); }
if (m[2]) { res = Number(m[2]); }
}
line += data.toString();
});
ex.stderr.on('data', function (data) {
//console.log('[ping] stderr: ' + data);
});
ex.on('close', function (code) {
//console.log('[ping] result: ' + code);
var m = regex.exec(line)||"";
if (m !== '') {
if (m[1]) { res = Number(m[1]); }
if (m[2]) { res = Number(m[2]); }
}
var msg = { payload:false, topic:node.host };
if (code === 0) { msg = { payload:res, topic:node.host }; }
node.send(msg);

View File

@ -1,6 +1,6 @@
{
"name" : "node-red-node-ping",
"version" : "0.0.1",
"version" : "0.0.3",
"description" : "A Node-RED node to ping a remote server, for use as a keep-alive check.",
"dependencies" : {
},