diff options
-rw-r--r-- | etc/inc/interfaces.inc | 41 | ||||
-rw-r--r-- | etc/inc/util.inc | 14 | ||||
-rwxr-xr-x | usr/local/www/interfaces.php | 6 |
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']; |