mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
update-ipblocklist: Add code to reload updated blocklists.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
This commit is contained in:
@@ -69,6 +69,10 @@ unless (-e "${General::swroot}/red/active") {
|
||||
# Get all available blocklists.
|
||||
my @blocklists = &IPblocklist::get_blocklists();
|
||||
|
||||
# Array to store successfully update blocklists.
|
||||
# They need to be reloaded.
|
||||
my @updated_blocklists = ();
|
||||
|
||||
# Gather the details, when a list got modified last time.
|
||||
my %modified = ();
|
||||
|
||||
@@ -120,6 +124,21 @@ foreach my $blocklist (@blocklists) {
|
||||
} else {
|
||||
# Log successfull update.
|
||||
&_log_to_syslog("<INFO> Successfully updated $blocklist blocklist.");
|
||||
|
||||
# Add the list to the array of updated blocklists.
|
||||
push(@updated_blocklists, $blocklist);
|
||||
}
|
||||
}
|
||||
|
||||
# Check if a blocklist has been updated and therefore needs to be reloaded.
|
||||
if (@updated_blocklists) {
|
||||
# Loop through the array.
|
||||
foreach my $updated_blocklist (@updated_blocklists) {
|
||||
# Get the blocklist file.
|
||||
my $ipset_db_file = &IPblocklist::get_ipset_db_file($updated_blocklist);
|
||||
|
||||
# Call safe system function to reload/update the blocklist.
|
||||
&General::system("ipset", "restore", "-f", "$ipset_db_file");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user