[prev in list] [next in list] [prev in thread] [next in thread]
List: ipfire-development
Subject: Re: [PATCH] rules.pl: Fix automatic ipset sets cleanup.
From: Peter_Müller <peter.mueller () ipfire ! org>
Date: 2022-04-29 19:45:40
Message-ID: 9c66f99a-3c2d-71f1-6fb8-a25adf878bfd () ipfire ! org
[Download RAW message or body]
Acked-by: Peter Müller <peter.mueller@ipfire.org>
> The array of used/loaded ipsets needs to be reloaded before
> the cleanup can be started to also handle sets which are loaded during
> runtime.
>
> Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
> ---
> config/firewall/rules.pl | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl
> index 649bd49f0..799b2667d 100644
> --- a/config/firewall/rules.pl
> +++ b/config/firewall/rules.pl
> @@ -137,7 +137,7 @@ undef (@dummy);
>
> sub main {
> # Get currently used ipset sets.
> - &ipset_get_sets();
> + @ipset_used_sets = &ipset_get_sets();
>
> # Flush all chains.
> &flush();
> @@ -993,6 +993,8 @@ sub firewall_chain_exists ($) {
> }
>
> sub ipset_get_sets () {
> + my @sets;
> +
> # Get all currently used ipset lists and store them in an array.
> my @output = `$IPSET -n list`;
>
> @@ -1002,14 +1004,17 @@ sub ipset_get_sets () {
> chomp($set);
>
> # Add the set the array of used sets.
> - push(@ipset_used_sets, $set);
> + push(@sets, $set);
> }
>
> # Display used sets in debug mode.
> if($DEBUG) {
> print "Used ipset sets:\n";
> - print "@ipset_used_sets\n\n";
> + print "@sets\n\n";
> }
> +
> + # Return the array of sets.
> + return @sets;
> }
>
> sub ipset_restore ($) {
> @@ -1089,6 +1094,9 @@ sub ipset_call_restore ($) {
> }
>
> sub ipset_cleanup () {
> + # Reload the array of used sets.
> + @ipset_used_sets = &ipset_get_sets();
> +
> # Loop through the array of used sets.
> foreach my $set (@ipset_used_sets) {
> # Check if this set is still in use.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic