ids-functions.pl: Add get_providers_mode() function.

This function is used to gather the modes of the configured providers
and return them as hash.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
This commit is contained in:
Stefan Schantl
2022-03-20 15:33:09 +01:00
parent ff780d8b3f
commit e0eb5bc737

View File

@@ -234,6 +234,42 @@ sub get_enabled_providers () {
return @enabled_providers;
}
#
## Function to get a hash of provider handles and their configured modes (IDS/IPS).
#
sub get_providers_mode () {
my %used_providers = ();
# Hash to store the providers and their configured modes.
my %providers_mode = ();
# Read-in the providers config file.
&General::readhasharray("$providers_settings_file", \%used_providers);
# Loop through the hash of used_providers.
foreach my $id (keys %used_providers) {
# Skip disabled providers.
next unless ($used_providers{$id}[3] eq "enabled");
# Grab the provider handle.
my $provider = "$used_providers{$id}[0]";
# Grab the provider mode.
my $mode = "$used_providers{$id}[4]";
# Fall back to IDS if no mode could be obtained.
unless($mode) {
$mode = "IDS";
}
# Add details to provider_modes hash.
$providers_mode{$provider} = $mode;
}
# Return the hash.
return %providers_mode;
}
#
## Function for checking if at least 300MB of free disk space are available
## on the "/var" partition.