Commit f9cf7910 authored by Franco Fichtner's avatar Franco Fichtner

src: try to unwind the wireless_regex global foo

parent dafaa551
...@@ -333,26 +333,34 @@ EODD; ...@@ -333,26 +333,34 @@ EODD;
if(isset($config['nat'])) if(isset($config['nat']))
unset($config['nat']); unset($config['nat']);
} }
if (preg_match($g['wireless_regex'], $lanif)) {
if (match_wireless_interface($lanif)) {
if (is_array($config['interfaces']['lan']) && if (is_array($config['interfaces']['lan']) &&
(!is_array($config['interfaces']['lan']['wireless']))) (!is_array($config['interfaces']['lan']['wireless']))) {
$config['interfaces']['lan']['wireless'] = array(); $config['interfaces']['lan']['wireless'] = array();
}
} else { } else {
if (isset($config['interfaces']['lan'])) if (isset($config['interfaces']['lan'])) {
unset($config['interfaces']['lan']['wireless']); unset($config['interfaces']['lan']['wireless']);
}
} }
if (!is_array($config['interfaces']['wan'])) if (!is_array($config['interfaces']['wan'])) {
$config['interfaces']['wan'] = array(); $config['interfaces']['wan'] = array();
}
$config['interfaces']['wan']['if'] = $wanif; $config['interfaces']['wan']['if'] = $wanif;
$config['interfaces']['wan']['enable'] = true; $config['interfaces']['wan']['enable'] = true;
if (preg_match($g['wireless_regex'], $wanif)) {
if (match_wireless_interface($wanif)) {
if (is_array($config['interfaces']['wan']) && if (is_array($config['interfaces']['wan']) &&
(!is_array($config['interfaces']['wan']['wireless']))) (!is_array($config['interfaces']['wan']['wireless']))) {
$config['interfaces']['wan']['wireless'] = array(); $config['interfaces']['wan']['wireless'] = array();
}
} else { } else {
if (isset($config['interfaces']['wan'])) if (isset($config['interfaces']['wan'])) {
unset($config['interfaces']['wan']['wireless']); unset($config['interfaces']['wan']['wireless']);
}
} }
for ($i = 0; $i < count($optif); $i++) { for ($i = 0; $i < count($optif); $i++) {
...@@ -361,8 +369,7 @@ EODD; ...@@ -361,8 +369,7 @@ EODD;
$config['interfaces']['opt' . ($i+1)]['if'] = $optif[$i]; $config['interfaces']['opt' . ($i+1)]['if'] = $optif[$i];
/* wireless interface? */ if (match_wireless_interface($optif[$i])) {
if (preg_match($g['wireless_regex'], $optif[$i])) {
if (!is_array($config['interfaces']['opt' . ($i+1)]['wireless'])) if (!is_array($config['interfaces']['opt' . ($i+1)]['wireless']))
$config['interfaces']['opt' . ($i+1)]['wireless'] = array(); $config['interfaces']['opt' . ($i+1)]['wireless'] = array();
} else { } else {
......
...@@ -45,7 +45,6 @@ $g = array( ...@@ -45,7 +45,6 @@ $g = array(
"product_copyright_years" => "2014 - 2015", "product_copyright_years" => "2014 - 2015",
"product_copyright_url" => "https://www.deciso.com/", "product_copyright_url" => "https://www.deciso.com/",
"latest_config" => "11.2", "latest_config" => "11.2",
"wireless_regex" => "/^(ndis|wi|ath|an|ral|ural|iwi|wlan|rum|run|bwn|zyd|mwl|bwi|ipw|iwn|malo|uath|upgt|urtw|wpi)/",
); );
/* IP TOS flags */ /* IP TOS flags */
...@@ -111,3 +110,9 @@ function is_install_media() ...@@ -111,3 +110,9 @@ function is_install_media()
return true; return true;
} }
function match_wireless_interface($int)
{
$wireless_regex = '/^(ndis|wi|ath|an|ral|ural|iwi|wlan|rum|run|bwn|zyd|mwl|bwi|ipw|iwn|malo|uath|upgt|urtw|wpi)/';
return preg_match($wireless_regex, $int);
}
...@@ -4336,10 +4336,11 @@ function get_real_interface($interface = "wan", $family = "all", $realv6iface = ...@@ -4336,10 +4336,11 @@ function get_real_interface($interface = "wan", $family = "all", $realv6iface =
case 'ppp': case 'ppp':
case 'l2tp': case 'l2tp':
case 'pptp': case 'pptp':
if( is_array($cfg['wireless']) || preg_match($g['wireless_regex'], $cfg['if'])) if (isset($cfg['wireless']) || match_wireless_interface($cfg['if'])) {
$wanif = interface_get_wireless_clone($cfg['if']); $wanif = interface_get_wireless_clone($cfg['if']);
else } else {
$wanif = $cfg['if']; $wanif = $cfg['if'];
}
break; break;
default: default:
switch ($cfg['ipaddr']) { switch ($cfg['ipaddr']) {
...@@ -4358,10 +4359,11 @@ function get_real_interface($interface = "wan", $family = "all", $realv6iface = ...@@ -4358,10 +4359,11 @@ function get_real_interface($interface = "wan", $family = "all", $realv6iface =
} }
break; break;
default: default:
if( is_array($cfg['wireless']) || preg_match($g['wireless_regex'], $cfg['if'])) if (isset($cfg['wireless']) || match_wireless_interface($cfg['if'])) {
$wanif = interface_get_wireless_clone($cfg['if']); $wanif = interface_get_wireless_clone($cfg['if']);
else } else {
$wanif = $cfg['if']; $wanif = $cfg['if'];
}
break; break;
} }
break; break;
...@@ -4370,10 +4372,11 @@ function get_real_interface($interface = "wan", $family = "all", $realv6iface = ...@@ -4370,10 +4372,11 @@ function get_real_interface($interface = "wan", $family = "all", $realv6iface =
// Wireless cloned NIC support (FreeBSD 8+) // Wireless cloned NIC support (FreeBSD 8+)
// interface name format: $parentnic_wlanparentnic# // interface name format: $parentnic_wlanparentnic#
// example: ath0_wlan0 // example: ath0_wlan0
if( (isset($cfg['wireless']) && is_array($cfg['wireless'])) || preg_match($g['wireless_regex'], $cfg['if'])) if (isset($cfg['wireless']) || match_wireless_interface($cfg['if'])) {
$wanif = interface_get_wireless_clone($cfg['if']); $wanif = interface_get_wireless_clone($cfg['if']);
else } else {
$wanif = $cfg['if']; $wanif = $cfg['if'];
}
} }
break; break;
} }
...@@ -5050,19 +5053,22 @@ function is_altq_capable($int) ...@@ -5050,19 +5053,22 @@ function is_altq_capable($int)
* RESULT * RESULT
* $tmp - Returns if an interface is wireless * $tmp - Returns if an interface is wireless
******/ ******/
function is_interface_wireless($interface) { function is_interface_wireless($interface)
{
global $config, $g; global $config, $g;
$friendly = convert_real_interface_to_friendly_interface_name($interface); $friendly = convert_real_interface_to_friendly_interface_name($interface);
if(!isset($config['interfaces'][$friendly]['wireless'])) { if (!isset($config['interfaces'][$friendly]['wireless'])) {
if (preg_match($g['wireless_regex'], $interface)) { if (match_wireless_interface($interface)) {
if (isset($config['interfaces'][$friendly])) if (isset($config['interfaces'][$friendly])) {
$config['interfaces'][$friendly]['wireless'] = array(); $config['interfaces'][$friendly]['wireless'] = array();
}
return true; return true;
} }
return false; return false;
} else }
return true;
return true;
} }
function get_wireless_modes($interface) { function get_wireless_modes($interface) {
......
...@@ -215,8 +215,9 @@ if(count($config['interfaces']) > 1) ...@@ -215,8 +215,9 @@ if(count($config['interfaces']) > 1)
$ifentries = get_configured_interface_with_descr(); $ifentries = get_configured_interface_with_descr();
foreach ($ifentries as $ent => $entdesc) { foreach ($ifentries as $ent => $entdesc) {
if (is_array($config['interfaces'][$ent]['wireless']) && if (is_array($config['interfaces'][$ent]['wireless']) &&
preg_match($g['wireless_regex'], $config['interfaces'][$ent]['if'])) match_wireless_interface($config['interfaces'][$ent]['if'])) {
$wifdescrs[$ent] = $entdesc; $wifdescrs[$ent] = $entdesc;
}
} }
if (count($wifdescrs) > 0) if (count($wifdescrs) > 0)
$status_menu[] = array(gettext("Wireless"), "/status_wireless.php"); $status_menu[] = array(gettext("Wireless"), "/status_wireless.php");
......
...@@ -209,7 +209,7 @@ if (isset($_POST['add_x']) && isset($_POST['if_add'])) { ...@@ -209,7 +209,7 @@ if (isset($_POST['add_x']) && isset($_POST['if_add'])) {
$config['interfaces'][$newifname] = array(); $config['interfaces'][$newifname] = array();
$config['interfaces'][$newifname]['descr'] = $descr; $config['interfaces'][$newifname]['descr'] = $descr;
$config['interfaces'][$newifname]['if'] = $_POST['if_add']; $config['interfaces'][$newifname]['if'] = $_POST['if_add'];
if (preg_match($g['wireless_regex'], $_POST['if_add'])) { if (match_wireless_interface($_POST['if_add'])) {
$config['interfaces'][$newifname]['wireless'] = array(); $config['interfaces'][$newifname]['wireless'] = array();
interface_sync_wireless_clones($config['interfaces'][$newifname], false); interface_sync_wireless_clones($config['interfaces'][$newifname], false);
} }
...@@ -315,7 +315,7 @@ if (isset($_POST['add_x']) && isset($_POST['if_add'])) { ...@@ -315,7 +315,7 @@ if (isset($_POST['add_x']) && isset($_POST['if_add'])) {
} }
/* check for wireless interfaces, set or clear ['wireless'] */ /* check for wireless interfaces, set or clear ['wireless'] */
if (preg_match($g['wireless_regex'], $ifport)) { if (match_wireless_interface($ifport)) {
if (!is_array($config['interfaces'][$ifname]['wireless'])) if (!is_array($config['interfaces'][$ifname]['wireless']))
$config['interfaces'][$ifname]['wireless'] = array(); $config['interfaces'][$ifname]['wireless'] = array();
} else { } else {
...@@ -327,8 +327,9 @@ if (isset($_POST['add_x']) && isset($_POST['if_add'])) { ...@@ -327,8 +327,9 @@ if (isset($_POST['add_x']) && isset($_POST['if_add'])) {
$config['interfaces'][$ifname]['descr'] = strtoupper($ifname); $config['interfaces'][$ifname]['descr'] = strtoupper($ifname);
if ($reloadif == true) { if ($reloadif == true) {
if (preg_match($g['wireless_regex'], $ifport)) if (match_wireless_interface($ifport)) {
interface_sync_wireless_clones($config['interfaces'][$ifname], false); interface_sync_wireless_clones($config['interfaces'][$ifname], false);
}
/* Reload all for the interface. */ /* Reload all for the interface. */
interface_configure($ifname, true); interface_configure($ifname, true);
} }
......
<?php <?php
/* /*
Copyright (C) 2014-2015 Deciso B.V. Copyright (C) 2014-2015 Deciso B.V.
Copyright (C) 2010 Erik Fonnesbeck Copyright (C) 2010 Erik Fonnesbeck
...@@ -163,7 +164,7 @@ include("head.inc"); ...@@ -163,7 +164,7 @@ include("head.inc");
<select name="if" class="selectpicker"> <select name="if" class="selectpicker">
<?php <?php
foreach ($portlist as $ifn => $ifinfo) foreach ($portlist as $ifn => $ifinfo)
if (preg_match($g['wireless_regex'], $ifn)) { if (match_wireless_interface($ifn)) {
echo "<option value=\"{$ifn}\""; echo "<option value=\"{$ifn}\"";
if ($ifn == $pconfig['if']) if ($ifn == $pconfig['if'])
echo " selected=\"selected\""; echo " selected=\"selected\"";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment