mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-16 05:53:00 +02:00
ids.cgi: Add function to read the enabled/disabled sid files
This function is used to read-in the files for enabled or disabled sid files and stores the sid and their state into a temporary hash which will be returned by the function. Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
This commit is contained in:
@@ -914,3 +914,54 @@ sub generate_home_net_file() {
|
||||
close(FILE);
|
||||
|
||||
}
|
||||
|
||||
#
|
||||
## Function to read-in the given enabled or disables sids file.
|
||||
#
|
||||
sub read_enabled_disabled_sids_file($) {
|
||||
my ($file) = @_;
|
||||
|
||||
# Temporary hash to store the sids and their state. It will be
|
||||
# returned at the end of this function.
|
||||
my %temphash;
|
||||
|
||||
# Open the given filename.
|
||||
open(FILE, "$file") or die "Could not open $file. $!\n";
|
||||
|
||||
# Loop through the file.
|
||||
while(<FILE>) {
|
||||
# Remove newlines.
|
||||
chomp $_;
|
||||
|
||||
# Skip blank lines.
|
||||
next if ($_ =~ /^\s*$/);
|
||||
|
||||
# Skip coments.
|
||||
next if ($_ =~ /^\#/);
|
||||
|
||||
# Splitt line into sid and state part.
|
||||
my ($state, $sid) = split(" ", $_);
|
||||
|
||||
# Skip line if the sid is not numeric.
|
||||
next unless ($sid =~ /\d+/ );
|
||||
|
||||
# Check if the sid was enabled.
|
||||
if ($state eq "enablesid") {
|
||||
# Add the sid and its state as enabled to the temporary hash.
|
||||
$temphash{$sid} = "enabled";
|
||||
# Check if the sid was disabled.
|
||||
} elsif ($state eq "disablesid") {
|
||||
# Add the sid and its state as disabled to the temporary hash.
|
||||
$temphash{$sid} = "disabled";
|
||||
# Invalid state - skip the current sid and state.
|
||||
} else {
|
||||
next;
|
||||
}
|
||||
}
|
||||
|
||||
# Close filehandle.
|
||||
close(FILE);
|
||||
|
||||
# Return the hash.
|
||||
return %temphash;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user