diff options
Diffstat (limited to 'src/etc')
-rw-r--r-- | src/etc/inc/filter.inc | 17 | ||||
-rw-r--r-- | src/etc/inc/globals.inc | 2 | ||||
-rw-r--r-- | src/etc/inc/upgrade_config.inc | 31 |
3 files changed, 49 insertions, 1 deletions
diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc index efa0d09..f41c091 100644 --- a/src/etc/inc/filter.inc +++ b/src/etc/inc/filter.inc @@ -4236,4 +4236,21 @@ function filter_get_antilockout_ports($wantarray = false) { } +// get rule index within interface +function ifridx($if, $ridx) { + global $config; + + $i = $ifridx = 0; + foreach ($config['filter']['rule'] as $rulen => $filterent) { + if (($filterent['interface'] == $if && !isset($filterent['floating'])) || (isset($filterent['floating']) && "FloatingRules" == $if)) { + if ($i == $ridx) { + return $ifridx; + } + $ifridx++; + } + $i++; + } + return $i; +} + ?> diff --git a/src/etc/inc/globals.inc b/src/etc/inc/globals.inc index bcb4043..a9d2ef5 100644 --- a/src/etc/inc/globals.inc +++ b/src/etc/inc/globals.inc @@ -99,7 +99,7 @@ $g = array( "disablecrashreporter" => false, "crashreporterurl" => "https://crashreporter.pfsense.org/crash_reporter.php", "debug" => false, - "latest_config" => "14.2", + "latest_config" => "14.3", "nopkg_platforms" => array("cdrom"), "minimum_ram_warning" => "101", "minimum_ram_warning_text" => "128 MB", diff --git a/src/etc/inc/upgrade_config.inc b/src/etc/inc/upgrade_config.inc index 0848d0e..d3abb0b 100644 --- a/src/etc/inc/upgrade_config.inc +++ b/src/etc/inc/upgrade_config.inc @@ -4410,4 +4410,35 @@ function upgrade_141_to_142() { } } +function upgrade_142_to_143() { + global $config; + /* Index firewall rule separators per interface */ + + foreach ($config['filter']['separator'] as $interface => $separators) { + + foreach ($separators as $sepn => $separator) { + + $seprow = substr($separator['row']['0'], 2); + $sepif = $separator['if']; + + // Determine position of separator within the interface rules. + $i = -1; $j = 0; + foreach ($config['filter']['rule'] as $rulen => $filterent) { + + if ($i == $seprow) { + // Set separator row to it's position within the interface rules. + $config['filter']['separator'][$sepif][$sepn]['row'] = 'fr' . $j; + continue 2; // Advance to next separator + } + + // Position within the interface rules. + if (($filterent['interface'] == $sepif && !isset($filterent['floating'])) || (isset($filterent['floating']) && "floatingrules" == $sepif)) { + $j++; + } + $i++; + } + } + } +} + ?> |