mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
rules.pl: Fix creating rules for location based groups.
The former used hash value only contains the country code when a rule for a single country should be created. In case a location group is used the hash value refers to the group name, which does not work here. The required country code is part of the processed string and can be omitted from here. This works well for single codes and location groups, because those are processed in a loop. Fixes #12809. Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org> Acked-by: Peter Müller <peter.mueller@ipfire.org>
This commit is contained in:
committed by
Peter Müller
parent
77e3829dc1
commit
abf148cebd
@@ -411,8 +411,9 @@ sub buildrules {
|
||||
if ($source =~ /mac/) {
|
||||
push(@source_options, $source);
|
||||
} elsif ($source =~ /-m set/) {
|
||||
# Grab location code from hash.
|
||||
my $loc_src = $$hash{$key}[4];
|
||||
# Split given arguments into single chunks to
|
||||
# obtain the set name.
|
||||
my ($a, $b, $c, $loc_src, $e) = split(/ /, $source);
|
||||
|
||||
# Call function to load the networks list for this country.
|
||||
&ipset_restore($loc_src);
|
||||
@@ -425,8 +426,9 @@ sub buildrules {
|
||||
# Prepare destination options.
|
||||
my @destination_options = ();
|
||||
if ($destination =~ /-m set/) {
|
||||
# Grab location code from hash.
|
||||
my $loc_dst = $$hash{$key}[6];
|
||||
# Split given arguments into single chunks to
|
||||
# obtain the set name.
|
||||
my ($a, $b, $c, $loc_dst, $e) = split(/ /, $destination);
|
||||
|
||||
# Call function to load the networks list for this country.
|
||||
&ipset_restore($loc_dst);
|
||||
|
||||
Reference in New Issue
Block a user