mirror of
https://github.com/opnsense/core.git
synced 2026-06-08 16:34:24 -04:00
backend: use bridges/bridged safe iteration
This commit is contained in:
parent
f18878041b
commit
9cd352e408
3 changed files with 12 additions and 19 deletions
|
|
@ -648,20 +648,21 @@ function filter_generate_aliases()
|
|||
function filter_rules_legacy(&$FilterIflist)
|
||||
{
|
||||
global $config;
|
||||
$log = !isset($config['syslog']['nologdefaultblock']) ? "log" : "";
|
||||
|
||||
$ipfrules = "";
|
||||
$log = !isset($config['syslog']['nologdefaultblock']) ? 'log' : '';
|
||||
$bridge_interfaces = [];
|
||||
if (!empty($config['bridges']['bridged'])) {
|
||||
foreach ($config['bridges']['bridged'] as $bridge) {
|
||||
$bridge_interfaces = array_merge(explode(',', $bridge['members'] ?? ''), $bridge_interfaces);
|
||||
}
|
||||
$ipfrules = '';
|
||||
|
||||
foreach (config_read_array('bridges', 'bridged', false) as $bridge) {
|
||||
$bridge_interfaces = array_merge(explode(',', $bridge['members'] ?? ''), $bridge_interfaces);
|
||||
}
|
||||
|
||||
foreach ($FilterIflist as $on => $oc) {
|
||||
if (!in_array($on, $bridge_interfaces) && !isset($oc['internal_dynamic']) && $oc['if'] != 'lo0') {
|
||||
$ipfrules .= "antispoof {$log} for {$oc['if']} \n";
|
||||
}
|
||||
}
|
||||
|
||||
return $ipfrules;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -188,13 +188,7 @@ function interfaces_wlan_clone($device)
|
|||
|
||||
function interfaces_bridge_configure($device)
|
||||
{
|
||||
global $config;
|
||||
|
||||
if (!isset($config['bridges']['bridged'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
foreach ($config['bridges']['bridged'] as $bridge) {
|
||||
foreach (config_read_array('bridges', 'bridged', false) as $bridge) {
|
||||
if ($bridge['bridgeif'] == $device) {
|
||||
return _interfaces_bridge_configure($bridge);
|
||||
}
|
||||
|
|
@ -3542,7 +3536,7 @@ function interface_parent_devices($device, $as_interface = false)
|
|||
}
|
||||
}
|
||||
} elseif (strstr($device, 'bridge')) {
|
||||
foreach (config_read_array('bridges', 'bridged') as $bridge) {
|
||||
foreach (config_read_array('bridges', 'bridged', false) as $bridge) {
|
||||
if ($device == $bridge['bridgeif']) {
|
||||
foreach (explode(',', $bridge['members'] ?? '') as $member) {
|
||||
/* bridge stores members as configured interfaces */
|
||||
|
|
@ -3650,7 +3644,7 @@ function interfaces_restart_by_device($verbose, $devices, $reconfigure = true)
|
|||
|
||||
function link_interface_to_bridge($interface, $attach_device = null, $ifconfig_details = [/* must be set for attach to work */])
|
||||
{
|
||||
foreach (config_read_array('bridges', 'bridged') as $bridge) {
|
||||
foreach (config_read_array('bridges', 'bridged', false) as $bridge) {
|
||||
if (!in_array($interface, explode(',', $bridge['members'] ?? ''))) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,10 +34,8 @@ require_once 'system.inc';
|
|||
|
||||
$ifconfig_details = legacy_interfaces_details();
|
||||
$current_bridgeifs = [];
|
||||
if (isset($config['bridges']['bridged'])) {
|
||||
foreach ($config['bridges']['bridged'] as $bridge) {
|
||||
$current_bridgeifs[$bridge['bridgeif']] = $bridge;
|
||||
}
|
||||
foreach (config_read_array('bridges', 'bridged', false) as $bridge) {
|
||||
$current_bridgeifs[$bridge['bridgeif']] = $bridge;
|
||||
}
|
||||
|
||||
/* delete before update */
|
||||
|
|
|
|||
Loading…
Reference in a new issue