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..62d27c3a 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;
@@ -145,12 +145,12 @@ 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
+ $iface = $_SESSION['ap_interface'] = $arrHostapdConf['WifiInterface'];
+ // check for 2nd wifi interface -> wifi client on different interface
exec("iw dev | awk '$1==\"Interface\" && $2!=\"$iface\" {print $2}'",$iface2);
- $_SESSION['ap_interface'] = empty($iface2) ? $iface : trim($iface2[0]);
+ $_SESSION['wifi_client_interface'] = empty($iface2) ? $iface : trim($iface2[0]);
} else { // fallback to default
- $_SESSION['ap_interface'] = RASPI_WIFI_AP_INTERFACE;
+ $_SESSION['ap_interface'] = $_SESSION['wifi_client_interface'] = RASPI_WIFI_AP_INTERFACE;
}
}
}
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" />