diff --git a/lib/wifi.js b/lib/wifi.js index c3bedc7..cb89d11 100644 --- a/lib/wifi.js +++ b/lib/wifi.js @@ -139,7 +139,7 @@ function ifaceListLinux() { } function nmiDeviceLinux(iface) { - const cmd = 'nmcli -t -f general,wifi-properties,capabilities,ip4,ip6 device show ' + iface; + const cmd = `nmcli -t -f general,wifi-properties,capabilities,ip4,ip6 device show ${iface} 2>/dev/null`; try { const lines = execSync(cmd).toString().split('\n'); const ssid = util.getValue(lines, 'GENERAL.CONNECTION'); @@ -157,7 +157,7 @@ function nmiDeviceLinux(iface) { } function nmiConnectionLinux(ssid) { - const cmd = `nmcli -t --show-secrets connection ${ssid} ssid 2>/dev/null`; + const cmd = `nmcli -t --show-secrets connection show ${ssid} 2>/dev/null`; try { const lines = execSync(cmd).toString().split('\n'); const bssid = util.getValue(lines, '802-11-wireless.seen-bssids').toLowerCase(); @@ -314,7 +314,7 @@ function wifiNetworks(callback) { const iwconfigParts = execSync('export LC_ALL=C; iwconfig 2>/dev/null; unset LC_ALL').toString().split('\n\n'); let iface = ''; for (let i = 0; i < iwconfigParts.length; i++) { - if (iwconfigParts[i].indexOf('no wireless') === -1) { + if (iwconfigParts[i].indexOf('no wireless') === -1 && iwconfigParts[i].trim() !== '') { iface = iwconfigParts[i].split(' ')[0]; } } @@ -478,7 +478,7 @@ function wifiConnections(callback) { ifaces.forEach(ifaceDetail => { const nmiDetails = nmiDeviceLinux(ifaceDetail.iface); const wpaDetails = wpaConnectionLinux(ifaceDetail.iface); - const ssid = nmiDetails.ssid; + const ssid = nmiDetails.ssid || wpaDetails.ssid; const network = networkList.filter(nw => nw.ssid === ssid); const nmiConnection = nmiConnectionLinux(ssid); const channel = network && network.length && network[0].channel ? network[0].channel : null; @@ -614,9 +614,8 @@ function wifiInterfaces(callback) { result.push({ id: ifaceDetail.id, iface: ifaceDetail.iface, - name: ifaceDetail.name, - model: nmiDetails.product, - vendor: nmiDetails.vendor, + model: nmiDetails.product ? nmiDetails.product : null, + vendor: nmiDetails.vendor ? nmiDetails.vendor : null, mac: ifaceDetail.mac, }); });