Run wpa_supplicant in background mode (-B)

This commit is contained in:
billz
2025-08-02 13:12:39 -07:00
parent 3922832b53
commit 63491b17d6
2 changed files with 5 additions and 4 deletions

View File

@@ -5,6 +5,7 @@ www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant-[a-zA-Z0
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant-wl*.conf
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_supplicant -B -Dnl80211 -c/etc/wpa_supplicant/wpa_supplicant.conf -i[a-zA-Z0-9]*
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_supplicant -i [a-zA-Z0-9]* -c /etc/wpa_supplicant/wpa_supplicant.conf -B
www-data ALL=(ALL) NOPASSWD:/bin/rm /var/run/wpa_supplicant/[a-zA-Z0-9]*
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i [a-zA-Z0-9]* scan_results
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i [a-zA-Z0-9]* scan

View File

@@ -183,7 +183,7 @@ class WiFiManager
if (preg_match('/ESSID:\"([^"]+)\"/i', $line, $iwconfig_ssid)) {
$ssid=hexSequence2lower($iwconfig_ssid[1]);
$networks[$ssid]['connected'] = true;
$check=detectCaptivePortal($_SESSION['wifi_client_interface']);
//$check=detectCaptivePortal($_SESSION['wifi_client_interface']);
$networks[$ssid]["portal-url"]=$check["URL"];
}
}
@@ -248,9 +248,9 @@ class WiFiManager
*/
public function reinitializeWPA($force)
{
$iface = escapeshellarg($_SESSION['wifi_client_interface']);
$iface = $_SESSION['wifi_client_interface'];
if ($force == true) {
$cmd = "sudo wpa_supplicant -B -Dnl80211 -c/etc/wpa_supplicant/wpa_supplicant.conf -i$iface";
$cmd = "sudo /sbin/wpa_supplicant -i $unescapedIface -c /etc/wpa_supplicant/wpa_supplicant.conf -B 2>&1";
$result = shell_exec($cmd);
}
$cmd = "sudo wpa_cli -i $iface reconfigure";
@@ -333,7 +333,7 @@ class WiFiManager
// retry
$output = shell_exec("sudo wpa_cli -i $iface list_networks 2>&1");
// tf it still fails, throw an exception
// if it still fails, throw an exception
if ($output === null || strpos($output, 'Failed to connect') !== false) {
throw new \Exception("Failed to start wpa_supplicant for interface: " . trim($startResult ?? 'unknown error'));
}