diff --git a/includes/configure_client.php b/includes/configure_client.php index 22c3febb..d6f2f554 100755 --- a/includes/configure_client.php +++ b/includes/configure_client.php @@ -17,7 +17,7 @@ function DisplayWPAConfig() if (isset($_POST['connect'])) { $result = 0; - exec('sudo wpa_cli -i ' . $_SESSION['ap_interface'] . ' select_network '.strval($_POST['connect'])); + exec('sudo wpa_cli -i ' . $_SESSION['wifi_client_interface'] . ' select_network '.strval($_POST['connect'])); $status->addMessage('New network selected', 'success'); } elseif (isset($_POST['client_settings'])) { $tmp_networks = $networks; @@ -77,7 +77,7 @@ function DisplayWPAConfig() if ($ok) { system('sudo cp /tmp/wifidata ' . RASPI_WPA_SUPPLICANT_CONFIG, $returnval); if ($returnval == 0) { - exec('sudo wpa_cli -i ' . $_SESSION['ap_interface'] . ' reconfigure', $reconfigure_out, $reconfigure_return); + exec('sudo wpa_cli -i ' . $_SESSION['wifi_client_interface'] . ' reconfigure', $reconfigure_out, $reconfigure_return); if ($reconfigure_return == 0) { $status->addMessage('Wifi settings updated successfully', 'success'); $networks = $tmp_networks; diff --git a/includes/dashboard.php b/includes/dashboard.php index b3d92e5f..0fd1831f 100755 --- a/includes/dashboard.php +++ b/includes/dashboard.php @@ -11,7 +11,7 @@ function DisplayDashboard(&$extraFooterScripts) getWifiInterface(); $status = new StatusMessages(); // Need this check interface name for proper shell execution. - if (!preg_match('/^([a-zA-Z0-9]+)$/', $_SESSION['ap_interface'])) { + if (!preg_match('/^([a-zA-Z0-9]+)$/', $_SESSION['wifi_client_interface'])) { $status->addMessage(_('Interface name invalid.'), 'danger'); $status->showMessages(); return; @@ -22,7 +22,7 @@ function DisplayDashboard(&$extraFooterScripts) $status->showMessages(); return; } - exec('ip a show '.$_SESSION['ap_interface'], $stdoutIp); + exec('ip a show '.$_SESSION['wifi_client_interface'], $stdoutIp); $stdoutIpAllLinesGlued = implode(" ", $stdoutIp); $stdoutIpWRepeatedSpaces = preg_replace('/\s\s+/', ' ', $stdoutIpAllLinesGlued); @@ -90,10 +90,7 @@ function DisplayDashboard(&$extraFooterScripts) define('SSIDMAXLEN', 32); // Warning iw comes with: "Do NOT screenscrape this tool, we don't consider its output stable." // fetch first wireless interface - $iface = $_SESSION['ap_interface']; - exec("iw dev | awk '$1==\"Interface\" && $2!=\"$iface\" {print $2}'",$iface2); - $wifi_client_interface = empty($iface2) ? $iface1 : trim($iface2[0]); - exec('iw dev ' .$wifi_client_interface. ' link ', $stdoutIw); + exec('iw dev ' .$_SESSION['wifi_client_interface']. ' link ', $stdoutIw); $stdoutIwAllLinesGlued = implode(' ', $stdoutIw); $stdoutIwWRepSpaces = preg_replace('/\s\s+/', ' ', $stdoutIwAllLinesGlued); @@ -125,7 +122,7 @@ function DisplayDashboard(&$extraFooterScripts) $bitrate = empty($bitrate) ? "-" : $bitrate; // txpower is now displayed on iw dev(..) info command, not on link command. - exec('iw dev '.$_SESSION['ap_interface'].' info ', $stdoutIwInfo); + exec('iw dev '.$_SESSION['wifi_client_interface'].' info ', $stdoutIwInfo); $stdoutIwInfoAllLinesGlued = implode(' ', $stdoutIwInfo); $stdoutIpInfoWRepSpaces = preg_replace('/\s\s+/', ' ', $stdoutIwInfoAllLinesGlued); @@ -156,7 +153,7 @@ function DisplayDashboard(&$extraFooterScripts) // Pressed stop button if ($interfaceState === 'UP') { $status->addMessage(sprintf(_('Interface is going %s.'), _('down')), 'warning'); - exec('sudo ip link set '.$_SESSION['ap_interface'].' down'); + exec('sudo ip link set '.$_SESSION['wifi_client_interface'].' down'); $wlan0up = false; $status->addMessage(sprintf(_('Interface is now %s.'), _('down')), 'success'); } elseif ($interfaceState === 'unknown') { @@ -168,8 +165,8 @@ function DisplayDashboard(&$extraFooterScripts) // Pressed start button if ($interfaceState === 'DOWN') { $status->addMessage(sprintf(_('Interface is going %s.'), _('up')), 'warning'); - exec('sudo ip link set ' .$_SESSION['ap_interface']. ' up'); - exec('sudo ip -s a f label ' . $_SESSION['ap_interface']); + exec('sudo ip link set ' .$_SESSION['wifi_client_interface']. ' up'); + exec('sudo ip -s a f label ' . $_SESSION['wifi_client_interface']); $wlan0up = true; $status->addMessage(sprintf(_('Interface is now %s.'), _('up')), 'success'); } elseif ($interfaceState === 'unknown') { diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index 3ab2db93..e40a628d 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -53,10 +53,10 @@ function nearbyWifiStations(&$networks, $cached = true) $scan_results = cache( $cacheKey, function () { - exec('sudo wpa_cli -i ' .$_SESSION['ap_interface']. ' scan'); + exec('sudo wpa_cli -i ' .$_SESSION['wifi_client_interface']. ' scan'); sleep(3); - exec('sudo wpa_cli -i ' .$_SESSION['ap_interface']. ' scan_results', $stdout); + exec('sudo wpa_cli -i ' .$_SESSION['wifi_client_interface']. ' scan_results', $stdout); array_shift($stdout); return implode("\n", $stdout); @@ -107,7 +107,7 @@ function nearbyWifiStations(&$networks, $cached = true) function connectedWifiStations(&$networks) { - exec('iwconfig ' .$_SESSION['ap_interface'], $iwconfig_return); + exec('iwconfig ' .$_SESSION['wifi_client_interface'], $iwconfig_return); foreach ($iwconfig_return as $line) { if (preg_match('/ESSID:\"([^"]+)\"/i', $line, $iwconfig_ssid)) { $networks[$iwconfig_ssid[1]]['connected'] = true; @@ -144,14 +144,10 @@ function getWifiInterface() { if (empty($_SESSION['ap_interface'])) { $arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini'); - if (isset($arrHostapdConf['WifiInterface'])) { - $iface = $arrHostapdConf['WifiInterface']; - // check for 2nd wifi interface - exec("iw dev | awk '$1==\"Interface\" && $2!=\"$iface\" {print $2}'",$iface2); - $_SESSION['ap_interface'] = empty($iface2) ? $iface : trim($iface2[0]); - } else { // fallback to default - $_SESSION['ap_interface'] = RASPI_WIFI_AP_INTERFACE; - } + $iface = $_SESSION['ap_interface'] = isset($arrHostapdConf['WifiInterface']) ? $arrHostapdConf['WifiInterface'] : RASPI_WIFI_AP_INTERFACE; + // check for 2nd wifi interface -> wifi client on different interface + exec("iw dev | awk '$1==\"Interface\" && $2!=\"$iface\" {print $2}'",$iface2); + $_SESSION['wifi_client_interface'] = empty($iface2) ? $iface : trim($iface2[0]); } } diff --git a/templates/dashboard.php b/templates/dashboard.php index 2ad10123..1ce73bea 100755 --- a/templates/dashboard.php +++ b/templates/dashboard.php @@ -1,12 +1,11 @@ @@ -128,9 +127,9 @@ $ifaceStatus = $wlan0up ? "up" : "down"; - " name="ifup_wlan0" /> + " name="ifup_wlan0" /> - " name="ifdown_wlan0" /> + " name="ifdown_wlan0" />