summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/inc/interfaces.inc41
-rw-r--r--etc/inc/util.inc14
-rwxr-xr-xusr/local/www/interfaces.php6
3 files changed, 25 insertions, 36 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index 4dc1aeb..7b59e8e 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -1381,11 +1381,7 @@ function interface_wireless_clone($realif, $wlcfg) {
$mode = "";
break;
}
- if(!stristr($wlcfg['if'], "_wlan")) {
- $baseif = $wlcfg['if'];
- } else {
- $baseif = substr($wlcfg['if'], 0, stripos($wlcfg['if'], "_wlan"));
- }
+ $baseif = interface_get_wireless_base($wlcfg['if']);
if(does_interface_exist($realif)) {
exec("/sbin/ifconfig {$realif}", $output, $ret);
$ifconfig_str = implode($output);
@@ -1435,20 +1431,11 @@ function interface_sync_wireless_clones(&$ifcfg, $sync_changes = false) {
if(!is_array($ifcfg['wireless']))
return;
- if(!stristr($ifcfg['if'], "_wlan")) {
- $baseif1 = $ifcfg['if'];
- } else {
- $baseif1 = substr($ifcfg['if'], 0, stripos($ifcfg['if'], "_wlan"));
- }
+ $baseif = interface_get_wireless_base($ifcfg['if']);
$iflist = get_configured_interface_list();
foreach ($iflist as $if) {
- if(!stristr($config['interfaces'][$if]['if'], "_wlan")) {
- $baseif2 = $config['interfaces'][$if]['if'];
- } else {
- $baseif2 = substr($config['interfaces'][$if]['if'], 0, stripos($config['interfaces'][$if]['if'], "_wlan"));
- }
- if ($baseif1 == $baseif2 && $ifcfg['if'] != $config['interfaces'][$if]['if']) {
+ if ($baseif == interface_get_wireless_base($config['interfaces'][$if]['if']) && $ifcfg['if'] != $config['interfaces'][$if]['if']) {
if (isset($config['interfaces'][$if]['wireless']['standard']) || $sync_changes) {
foreach ($shared_settings as $setting) {
if ($sync_changes) {
@@ -2413,6 +2400,22 @@ function interface_translate_type_to_real($interface) {
return $interface;
}
+function interface_get_wireless_base($wlif)
+ if(!stristr($wlif, "_wlan")) {
+ return $wlif;
+ } else {
+ return substr($wlif, 0, stripos($wlif, "_wlan"));
+ }
+}
+
+function interface_get_wireless_clone($wlif)
+ if(!stristr($wlif, "_wlan")) {
+ return $wlif . "_wlan0";
+ } else {
+ return $wlif;
+ }
+}
+
function get_real_interface($interface = "wan") {
global $config;
@@ -2472,11 +2475,7 @@ function get_real_interface($interface = "wan") {
// interface name format: $parentnic_wlanparentnic#
// example: ath0_wlan0
if(is_interface_wireless($cfg['if'])) {
- if(!stristr($cfg['if'], "_wlan")) {
- $wanif = $cfg['if'] . "_wlan0";
- } else {
- $wanif = $cfg['if'];
- }
+ $wanif = interface_get_wireless_clone($cfg['if']);
break;
}
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index cbacb3c..a623e9d 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -961,16 +961,10 @@ function is_interface_mismatch() {
if (preg_match("/^enc|^tun|^ppp|^pptp|^pppoe|^ovpn|^gif|^gre|^lagg|^bridge|vlan/i", $ifcfg['if'])) {
$i++;
}
- else {
- $baseif = $ifcfg['if'];
- if(stristr($baseif, "_wlan")) {
- $baseif = substr($baseif, 0, stripos($baseif, "_wlan"));
- }
- if (does_interface_exist($baseif) == false) {
- $do_assign = true;
- } else
- $i++;
- }
+ else if (does_interface_exist(interface_get_wireless_base($ifcfg['if'])) == false) {
+ $do_assign = true;
+ } else
+ $i++;
}
if ($g['minimum_nic_count'] > $i) {
diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php
index e66055e..578bcde 100755
--- a/usr/local/www/interfaces.php
+++ b/usr/local/www/interfaces.php
@@ -215,11 +215,7 @@ if (isset($wancfg['wireless'])) {
/* Get wireless modes */
$wlanif = get_real_interface($if);
interface_wireless_clone($wlanif, $wancfg);
- if(!stristr($wancfg['if'], "_wlan")) {
- $wlanbaseif = $wancfg['if'];
- } else {
- $wlanbaseif = substr($wancfg['if'], 0, stripos($wancfg['if'], "_wlan"));
- }
+ $wlanbaseif = interface_get_wireless_base($wancfg['if']);
$wl_modes = get_wireless_modes($if);
$pconfig['standard'] = $wancfg['wireless']['standard'];
$pconfig['mode'] = $wancfg['wireless']['mode'];
OpenPOWER on IntegriCloud