extended windows support (users, inetLatency)
This commit is contained in:
+9
-13
@@ -181,7 +181,7 @@ function getDynamicData(srv, iface, callback) {
|
||||
|
||||
// use closure to track ƒ completion
|
||||
let functionProcessed = (function () {
|
||||
let totalFunctions = (_windows ? 5 : 14);
|
||||
let totalFunctions = (_windows ? 7 : 14);
|
||||
|
||||
return function () {
|
||||
if (--totalFunctions === 0) {
|
||||
@@ -220,12 +220,10 @@ function getDynamicData(srv, iface, callback) {
|
||||
functionProcessed();
|
||||
});
|
||||
|
||||
if (!_windows) {
|
||||
users.users().then(res => {
|
||||
data.users = res;
|
||||
functionProcessed();
|
||||
});
|
||||
}
|
||||
users.users().then(res => {
|
||||
data.users = res;
|
||||
functionProcessed();
|
||||
});
|
||||
|
||||
if (!_windows) {
|
||||
processes.processes().then(res => {
|
||||
@@ -296,12 +294,10 @@ function getDynamicData(srv, iface, callback) {
|
||||
});
|
||||
}
|
||||
|
||||
if (!_windows) {
|
||||
internet.inetLatency().then(res => {
|
||||
data.inetLatency = res;
|
||||
functionProcessed();
|
||||
});
|
||||
}
|
||||
internet.inetLatency().then(res => {
|
||||
data.inetLatency = res;
|
||||
functionProcessed();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
+35
-20
@@ -79,29 +79,44 @@ function inetLatency(host, callback) {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
process.nextTick(() => {
|
||||
if (_windows) {
|
||||
let error = new Error(NOT_SUPPORTED);
|
||||
if (callback) { callback(NOT_SUPPORTED) }
|
||||
reject(error);
|
||||
}
|
||||
|
||||
let t = Date.now();
|
||||
let cmd;
|
||||
if (_linux) {
|
||||
cmd = "ping -c 2 -w 3 " + host + " | grep rtt | cut -d'/' -f4 | awk '{ print $3 }'";
|
||||
}
|
||||
if (_darwin) {
|
||||
cmd = "ping -c 2 -t 3 " + host + " | grep avg | cut -d'/' -f4 | awk '{ print $3 }'";
|
||||
}
|
||||
|
||||
exec(cmd, function (error, stdout) {
|
||||
let result = -1;
|
||||
if (!error) {
|
||||
result = parseFloat(stdout.toString());
|
||||
if (_linux || _darwin) {
|
||||
if (_linux) {
|
||||
cmd = "ping -c 2 -w 3 " + host + " | grep rtt | cut -d'/' -f4 | awk '{ print $3 }'";
|
||||
}
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
})
|
||||
if (_darwin) {
|
||||
cmd = "ping -c 2 -t 3 " + host + " | grep avg | cut -d'/' -f4 | awk '{ print $3 }'";
|
||||
}
|
||||
|
||||
exec(cmd, function (error, stdout) {
|
||||
let result = -1;
|
||||
if (!error) {
|
||||
result = parseFloat(stdout.toString());
|
||||
}
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
})
|
||||
}
|
||||
if (_windows) {
|
||||
exec('ping ' + host + ' -n 1', function (error, stdout) {
|
||||
let result = -1;
|
||||
if (!error) {
|
||||
let lines = stdout.toString().split('\r\n');
|
||||
lines.shift();
|
||||
lines.forEach(function (line) {
|
||||
if (line.toLowerCase().startsWith(' min')) {
|
||||
let l = line.replace(/ +/g, " ").split(' ');
|
||||
if (l.length > 8) {
|
||||
result = parseFloat(l[9])
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
})
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
+28
-17
@@ -140,12 +140,6 @@ function users(callback) {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
process.nextTick(() => {
|
||||
if (_windows) {
|
||||
let error = new Error(NOT_SUPPORTED);
|
||||
if (callback) { callback(NOT_SUPPORTED) }
|
||||
reject(error);
|
||||
}
|
||||
|
||||
let result = [];
|
||||
|
||||
// linux
|
||||
@@ -161,12 +155,9 @@ function users(callback) {
|
||||
// lines / split
|
||||
lines = stdout.toString().split('\n');
|
||||
result = parseUsers1(lines);
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
} else {
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
}
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
});
|
||||
} else {
|
||||
if (callback) { callback(result) }
|
||||
@@ -185,13 +176,33 @@ function users(callback) {
|
||||
// lines / split
|
||||
let lines = stdout.toString().split('\n');
|
||||
result = parseUsers2(lines);
|
||||
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
} else {
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
}
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
});
|
||||
}
|
||||
if (_windows) {
|
||||
exec("query user", function (error, stdout) {
|
||||
if (stdout) {
|
||||
// lines / split
|
||||
let lines = stdout.toString().split('\r\n');
|
||||
lines.shift();
|
||||
lines.forEach(function (line) {
|
||||
let l = line.replace(/ +/g, " ").split(' ');
|
||||
if (l.length >= 7) {
|
||||
result.push({
|
||||
user: l[0].replace(/>/g, " "),
|
||||
tty: l[1],
|
||||
date: l[5].substr(6,4) + '-' + l[5].substr(3,2) + '-' + l[5].substr(0,2),
|
||||
time: l[4],
|
||||
ip: '',
|
||||
command: ''
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
if (callback) { callback(result) }
|
||||
resolve(result);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user