fixes wifi

This commit is contained in:
Sebastian Hildebrandt 2021-02-10 16:35:20 +01:00
parent ac29803f03
commit b15d09dde2

View File

@ -119,7 +119,7 @@ function ifaceListLinux() {
const all = execSync(cmd).toString().split('\n').map(line => line.trim()).join('\n');
const parts = all.split('\nInterface ');
parts.shift();
parts.foreach(ifaceDetails => {
parts.forEach(ifaceDetails => {
const lines = ifaceDetails.split('\n');
const iface = lines[0];
const id = util.toInt(util.getValue(lines, 'ifindex', ' '));
@ -142,13 +142,14 @@ function nmiDeviceLinux(iface) {
const cmd = 'nmcli -t -f general,wifi-properties,capabilities,ip4,ip6 device show ' + iface;
try {
const lines = execSync(cmd).toString().split('\n');
const ssid = util.getValue(lines, 'GENERAL.CONNECTION');
return {
iface,
type: util.getValue(lines, 'GENERAL.TYPE'),
vendor: util.getValue(lines, 'GENERAL.VENDOR'),
product: util.getValue(lines, 'GENERAL.PRODUCT'),
mac: util.getValue(lines, 'GENERAL.HWADDR').toLowerCase(),
ssid: util.getValue(lines, 'GENERAL.CONNECTION'),
ssid: ssid !== '--' ? ssid : null
};
} catch (e) {
return {};
@ -156,16 +157,17 @@ function nmiDeviceLinux(iface) {
}
function nmiConnectionLinux(ssid) {
const cmd = 'nmcli -t --show-secrets connection show ' + ssid;
const cmd = `nmcli -t --show-secrets connection ${ssid} ssid 2>/dev/null`;
try {
const lines = execSync(cmd).toString().split('\n');
const bssid = util.getValue(lines, '802-11-wireless.seen-bssids').toLowerCase();
return {
ssid,
ssid: ssid !== '--' ? ssid : null,
uuid: util.getValue(lines, 'connection.uuid'),
type: util.getValue(lines, 'connection.type'),
autoconnect: util.getValue(lines, 'connection.autoconnect') === 'yes',
security: util.getValue(lines, '802-11-wireless-security.key-mgmt'),
bssid: util.getValue(lines, '802-11-wireless.seen-bssids').toLowerCase()
bssid: bssid !== '--' ? bssid : null
};
} catch (e) {
return {};
@ -173,7 +175,7 @@ function nmiConnectionLinux(ssid) {
}
function wpaConnectionLinux(iface) {
const cmd = `wpa_cli -i ${iface} status`;
const cmd = `wpa_cli -i ${iface} status 2>&1`;
try {
const lines = execSync(cmd).toString().split('\n');
return {
@ -216,6 +218,7 @@ function getWifiNetworkListNmi() {
rsnFlags: rsnFlags && rsnFlags !== 'none' ? rsnFlags.split(' ') : []
});
});
return result;
} catch (e) {
return [];
}
@ -479,19 +482,22 @@ function wifiConnections(callback) {
const network = networkList.filter(nw => nw.ssid === ssid);
const nmiConnection = nmiConnectionLinux(ssid);
const channel = network && network.length && network[0].channel ? network[0].channel : null;
result.push({
id: ifaceDetail.id,
iface: ifaceDetail.iface,
model: nmiDetails.product,
ssid,
bssid: network && network.length && network[0].bssid ? network[0].bssid : (wpaDetails && wpaDetails.bssid ? wpaDetails.bssid : null),
channel,
frequency: channel ? wifiFrequencyFromChannel(channel) : null,
type: nmiConnection && nmiConnection.type ? nmiConnection.type : '802.11',
security: nmiConnection && nmiConnection.security ? nmiConnection.security : (wpaDetails && wpaDetails.security ? wpaDetails.security : null),
signalLevel: network && network.length && network[0].signalLevel ? network[0].signalLevel : null,
txRate: null
});
const bssid = network && network.length && network[0].bssid ? network[0].bssid : (wpaDetails && wpaDetails.bssid ? wpaDetails.bssid : null);
if (ssid && bssid) {
result.push({
id: ifaceDetail.id,
iface: ifaceDetail.iface,
model: nmiDetails.product,
ssid,
bssid: network && network.length && network[0].bssid ? network[0].bssid : (wpaDetails && wpaDetails.bssid ? wpaDetails.bssid : null),
channel,
frequency: channel ? wifiFrequencyFromChannel(channel) : null,
type: nmiConnection && nmiConnection.type ? nmiConnection.type : '802.11',
security: nmiConnection && nmiConnection.security ? nmiConnection.security : (wpaDetails && wpaDetails.security ? wpaDetails.security : null),
signalLevel: network && network.length && network[0].signalLevel ? network[0].signalLevel : null,
txRate: null
});
}
});
if (callback) {
callback(result);