From 8e6a7bb852e7047ffc04553f30b3332139450701 Mon Sep 17 00:00:00 2001 From: Sebastian Hildebrandt Date: Mon, 7 Jan 2019 14:42:13 +0100 Subject: [PATCH] optimized network --- lib/network.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/network.js b/lib/network.js index 7624457..cd2e993 100644 --- a/lib/network.js +++ b/lib/network.js @@ -163,7 +163,7 @@ function parseLinesWindowsNics(sections) { netEnabled: netEnabled === 'TRUE', speed: isNaN(speed) ? -1 : speed, operstate: util.getValue(lines, 'NetConnectionStatus', '=') === '2' ? 'up' : 'down', - type: util.getValue(lines, 'MACAddress', '=') === '9' ? 'wireless' : 'wired' + type: util.getValue(lines, 'AdapterTypeID', '=') === '9' ? 'wireless' : 'wired' }); } } @@ -229,6 +229,13 @@ function parseLinesDarwinNics(sections) { if (nic.speed === -1) { speed = util.getValue(section, 'uplink rate'); nic.speed = speed ? parseFloat(speed) : -1; + if (nic.speed > -1 && speed.toLowerCase().indexOf('gbps') >= 0) { + nic.speed = nic.speed * 1000; + } + } else { + if (speed.toLowerCase().indexOf('gbps') >= 0) { + nic.speed = nic.speed * 1000; + } } nic.type = util.getValue(section, 'type').toLowerCase().indexOf('wi-fi') > -1 ? 'wireless' : 'wired'; nic.operstate = util.getValue(section, 'status').toLowerCase().indexOf('active') > -1 ? 'up' : 'down'; @@ -328,7 +335,8 @@ function networkInterfaces(callback) { echo -n "speed: "; cat /sys/class/net/${iface}/speed 2>&1; echo -n "tx_queue_len: "; cat /sys/class/net/${iface}/tx_queue_len 2>&1; echo -n "type: "; cat /sys/class/net/${iface}/type 2>&1; - echo -n "wireless: "; cat /proc/net/wireless \| grep ${iface}; echo;`; + echo -n "wireless: "; cat /proc/net/wireless \| grep ${iface}; + echo -n "wirelessspeed: "; iw dev ${iface} link 2>&1 \| grep bitrate; echo;`; let lines = execSync(cmd).toString().split('\n'); duplex = util.getValue(lines, 'duplex'); @@ -336,6 +344,11 @@ function networkInterfaces(callback) { mtu = parseInt(util.getValue(lines, 'mtu'), 10); let myspeed = parseInt(util.getValue(lines, 'speed'), 10); speed = isNaN(myspeed) ? -1 : myspeed; + let wirelessspeed = util.getValue(lines, 'wirelessspeed').split('tx bitrate: '); + if (speed === -1 && wirelessspeed.length === 2) { + myspeed = parseFloat(wirelessspeed[1]); + speed = isNaN(myspeed) ? -1 : myspeed; + } carrierChanges = parseInt(util.getValue(lines, 'carrier_changes'), 10); operstate = util.getValue(lines, 'operstate'); type = operstate === 'up' ? (util.getValue(lines, 'wireless').trim() ? 'wireless' : 'wired') : 'unknown'; @@ -355,6 +368,9 @@ function networkInterfaces(callback) { type = detail.type; } }); + if (iface.toLowerCase().indexOf('wlan') >= 0 || ifaceName.toLowerCase().indexOf('wlan') >= 0 || ifaceName.toLowerCase().indexOf('wireless') >= 0) { + type = 'wireless'; + } } if (_darwin || _freebsd || _openbsd) { nics.forEach(nic => { @@ -363,6 +379,7 @@ function networkInterfaces(callback) { duplex = nic.duplex; speed = nic.speed; type = nic.type; + operstate = nic.operstate; } }); }