From 43c9997f0724fde96961892db06cd203c3604da4 Mon Sep 17 00:00:00 2001 From: billz Date: Thu, 29 Dec 2022 06:27:32 +0100 Subject: [PATCH] Improve handling of wpa_cli output --- includes/dashboard.php | 3 +-- includes/wifi_functions.php | 15 ++++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/includes/dashboard.php b/includes/dashboard.php index 00809655..e768c37e 100755 --- a/includes/dashboard.php +++ b/includes/dashboard.php @@ -107,8 +107,7 @@ function DisplayDashboard(&$extraFooterScripts) $wlanHasLink = false; $matchesSSID[1] = 'None'; } - - $connectedSSID = $matchesSSID[1]; + $connectedSSID = str_replace('\x20', '', $matchesSSID[1]); preg_match('/freq: (\d+)/i', $stdoutIwWRepSpaces, $matchesFrequency) || $matchesFrequency[1] = ''; $frequency = $matchesFrequency[1].' MHz'; diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index dcc57ede..ee8561b8 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -60,13 +60,10 @@ function nearbyWifiStations(&$networks, $cached = true) exec('sudo wpa_cli -i ' .$_SESSION['wifi_client_interface']. ' scan'); sleep(3); - exec('sudo wpa_cli -i ' .$_SESSION['wifi_client_interface']. ' scan_results', $stdout); - array_shift($stdout); - - return implode("\n", $stdout); + $stdout = shell_exec('sudo wpa_cli -i ' .$_SESSION['wifi_client_interface']. ' scan_results'); + return preg_split("/\n/", $stdout); } ); - // get the name of the AP. Should be excluded from nearby networks exec('cat '.RASPI_HOSTAPD_CONFIG.' | sed -rn "s/ssid=(.*)\s*$/\1/p" ', $ap_ssid); $ap_ssid = $ap_ssid[0]; @@ -76,11 +73,11 @@ function nearbyWifiStations(&$networks, $cached = true) $lastnet = end($networks); if ( isset($lastnet['index']) ) $index = $lastnet['index'] + 1; } - - foreach (explode("\n", $scan_results) as $network) { - $arrNetwork = preg_split("/[\t]+/", $network); // split result into array - $ssid = trim($arrNetwork[4]); + array_shift($scan_results); + foreach ($scan_results as $network) { + $arrNetwork = preg_split("/[\t]+/", $network); // split result into array + $ssid = $arrNetwork[4]; // exclude raspap ssid if (empty($ssid) || $ssid == $ap_ssid) {