45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* LICENSE MIT
|
|
* (C) Daniel Zelisko
|
|
* http://github.com/danielzzz/node-ping
|
|
*
|
|
* a simple wrapper for ping
|
|
* Now with support of not only english Windows.
|
|
*
|
|
*/
|
|
|
|
// Promise implementation
|
|
var ping = require('./ping-promise');
|
|
|
|
// TODO:
|
|
// 1. Port round trip time to this callback
|
|
// 2. However, it may breaks backward compatability
|
|
// 3. Need discussion
|
|
/**
|
|
* Callback after probing given host
|
|
* @callback probeCallback
|
|
* @param {boolean} isAlive - Whether target is alive or not
|
|
* @param {Object} error - Null if no error occurs
|
|
*/
|
|
|
|
/**
|
|
* Class::Ping construtor
|
|
* @param {string} addr - Hostname or ip addres
|
|
* @param {probeCallback} cb - Callback
|
|
* @param {PingConfig} config - Configuration for command ping
|
|
*/
|
|
function probe(addr, cb, config) {
|
|
// Do not reassign function parameter
|
|
var _config = config || {};
|
|
|
|
return ping.probe(addr, _config).then(function (res) {
|
|
cb(res.alive, null);
|
|
}).catch(function (err) {
|
|
cb(null, err);
|
|
});
|
|
}
|
|
|
|
exports.probe = probe;
|