fix time(), networkConnections() fixed wrond PID parsing (macOS)

This commit is contained in:
Sebastian Hildebrandt
2024-12-13 00:24:26 +01:00
parent edba2b3023
commit 7fd3e4cbb1
5 changed files with 35 additions and 21 deletions
+1 -1
View File
@@ -1536,7 +1536,7 @@ function networkConnections(callback) {
if (_darwin) {
// let cmd = 'netstat -natv | grep "ESTABLISHED\\|SYN_SENT\\|SYN_RECV\\|FIN_WAIT1\\|FIN_WAIT2\\|TIME_WAIT\\|CLOSE\\|CLOSE_WAIT\\|LAST_ACK\\|LISTEN\\|CLOSING\\|UNKNOWN"';
let cmd = 'netstat -natvln | grep "tcp4\\|tcp6\\|udp4\\|udp6"';
const states = 'ESTABLISHED|SYN_SENT|SYN_RECV|FIN_WAIT1|FIN_WAIT2|TIME_WAIT|CLOSE|CLOSE_WAIT|LAST_ACK|LISTEN|CLOSING|UNKNOWN';
const states = 'ESTABLISHED|SYN_SENT|SYN_RECV|FIN_WAIT1|FIN_WAIT_1|FIN_WAIT2|FIN_WAIT_2|TIME_WAIT|CLOSE|CLOSE_WAIT|LAST_ACK|LISTEN|CLOSING|UNKNOWN';
exec(cmd, { maxBuffer: 1024 * 20000 }, function (error, stdout) {
if (!error) {
exec('ps -axo pid,command', { maxBuffer: 1024 * 20000 }, function (err2, stdout2) {
+27 -19
View File
@@ -34,26 +34,34 @@ const _sunos = (_platform === 'sunos');
function time() {
let t = new Date().toString().split(' ');
if (_darwin || _linux) {
const stdout = execSync('date +%Z && date +%z && ls -l /etc/localtime 2>/dev/null', util.execOptsLinux);
const lines = stdout.toString().split(os.EOL);
if (lines.length > 3 && !lines[0]) {
lines.shift();
}
return {
current: Date.now(),
uptime: os.uptime(),
timezone: lines[0] && lines[1] ? lines[0] + lines[1] : '',
timezoneName: lines[2] && lines[2].indexOf('/zoneinfo/') > 0 ? (lines[2].split('/zoneinfo/')[1] || '') : ''
};
} else {
return {
current: Date.now(),
uptime: os.uptime(),
timezone: (t.length >= 7) ? t[5] : '',
timezoneName: Intl ? Intl.DateTimeFormat().resolvedOptions().timeZone : (t.length >= 7) ? t.slice(6).join(' ').replace(/\(/g, '').replace(/\)/g, '') : ''
};
const result = {
current: Date.now(),
uptime: os.uptime(),
timezone: (t.length >= 7) ? t[5] : '',
timezoneName: Intl ? Intl.DateTimeFormat().resolvedOptions().timeZone : (t.length >= 7) ? t.slice(6).join(' ').replace(/\(/g, '').replace(/\)/g, '') : ''
};
if (_darwin || _linux) {
try {
const stdout = execSync('date +%Z && date +%z && ls -l /etc/localtime 2>/dev/null', util.execOptsLinux);
const lines = stdout.toString().split(os.EOL);
if (lines.length > 3 && !lines[0]) {
lines.shift();
}
let timezone = lines[0] || '';
if (timezone.startsWith('+') || timezone.startsWith('-')) {
timezone = 'GMT';
}
return {
current: Date.now(),
uptime: os.uptime(),
timezone: lines[1] ? timezone + lines[1] : timezone,
timezoneName: lines[2] && lines[2].indexOf('/zoneinfo/') > 0 ? (lines[2].split('/zoneinfo/')[1] || '') : ''
};
} catch (e) {
util.noop();
}
}
return result;
}
exports.time = time;