]> git.ipfire.org Git - people/stevee/guardian.git/blobdiff - modules/Events.pm
Events: Allow unblocking of addresses if the are part of the ignore list.
[people/stevee/guardian.git] / modules / Events.pm
index ec253c05d33526db1b9b13302f6dfcccde87b574..2892786ace0e2513d6d04a7c2d405ed4963ca888 100644 (file)
@@ -137,8 +137,8 @@ sub CheckAction ($$) {
                        return;
                }
 
-               # Check if address should be ignored.
-               if(&_IsOnIgnoreList($bin_address)) {
+               # Check if the given command is not "unblock" and the address should be ignored.
+               if(($command ne "unblock") && (&_IsOnIgnoreList($bin_address))) {
                        # Log message.
                        $logger->Log("info", "Ignoring event for $address, because it is part of the ignore list.");
                        return;
@@ -320,6 +320,12 @@ sub CallUnblock ($) {
        # Drop address from blockhash.
        delete ($blockhash{$address});
 
+       # Drop address from counthash if the address has been unblocked
+       # by the user. This happens when the called module is "Socket".
+       if ($module eq "Socket") {
+               delete ($counthash{$address});
+       }
+
        # Everything worked well, return nothing.
        return undef;
 }
@@ -335,7 +341,7 @@ sub CallFlush ($) {
        my $self = shift;
 
        # Log the call for flushing.
-       $logger->Log("info", "Flush has been called...");
+       $logger->Log("debug", "Flush has been called...");
 
        # Call flush.
        my $error = &DoFlush();
@@ -478,7 +484,19 @@ sub GenerateIgnoreList($) {
        my $amount = scalar(keys(%ignorehash));
 
        # Write out log message.
-       $logger->Log("debug", "Ignore list currently contains $amount entries.");
+       $logger->Log("debug", "Ignore list currently contains $amount entries:");
+
+       # Sort the ignore hash.
+       my @sorted_addresses = &Guardian::Base::SortAddressHash(\%ignorehash);
+
+       # Loop through the entire array.
+       foreach my $address (@sorted_addresses) {
+               # Log the ignored address.
+               $logger->Log("debug", "\- $address");
+       }
+
+       # Finished return nothing.
+       return;
 }
 
 #