return $self;
}
+#
+## The "Update" Block settings function.
+#
+## This object based function is called to update various class settings.
+#
+sub Update (\%) {
+ my $self = shift;
+
+ # Dereference the given hash-ref and store
+ # the values into a new temporary hash.
+ my %settings = %{ $_[0] };
+
+ # Skip settings update if some essential settings are missing.
+ unless ((exists($settings{BlockCount})) && (exists($settings{BlockTime}))) {
+ $logger->Log("err", "Values for BlockCount or BlockTime are missing, keeping previously configured settings.");
+
+ # Return unmodified class object.
+ return $self;
+ }
+
+ # Change settings.
+ $self->{BlockCount} = $settings{BlockCount};
+ $self->{BlockTime} = $settings{BlockTime};
+
+ # Return modified class object.
+ return $self;
+}
+
#
## The main "CheckAction" function.
#
# 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;
+}
+
+#
+## CallFlush function.
+#
+## This function is responsible for calling the used firewall
+## engine to do a flush of the used firewall chain. This will
+## clean the entire firewall chain.
+#
+sub CallFlush ($) {
+ my $self = shift;
+
+ # Log the call for flushing.
+ $logger->Log("debug", "Flush has been called...");
+
+ # Call flush.
+ my $error = &DoFlush();
+
+ # If an error message is returned, something went wrong.
+ if ($error) {
+ # Exit function and return the error message.
+ return $error;
+ } else {
+ # Flush successfully has been performed.
+ $logger->Log("debug", "Flush successfully has been performed...");
+ }
+
+ # Flush blockhash.
+ %blockhash = ();
+
# Everything worked well, return nothing.
return undef;
}
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;
}
#