]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Refactor "get_available_network_zones", move to network-functions.pl
authorLeo-Andres Hofmann <hofmann@leo-andres.de>
Sun, 17 Jan 2021 14:20:03 +0000 (15:20 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 25 Jan 2021 19:32:38 +0000 (19:32 +0000)
This function nicely translates the ethernet/settings "CONFIG_TYPE"
into a list of available zones. Therefore it should be more accessible!

Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/cfgroot/ids-functions.pl
config/cfgroot/network-functions.pl
config/suricata/convert-snort
html/cgi-bin/ids.cgi

index d45e1c70a68b5245fdbc2e09cb25c46a025bcbc3..2fdae4a7a19741f6c184476eab25edd6f583c9b6 100644 (file)
@@ -24,6 +24,7 @@
 package IDS;
 
 require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/network-functions.pl";
 
 # Location where all config and settings files are stored.
 our $settingsdir = "${General::swroot}/suricata";
@@ -410,42 +411,6 @@ sub _store_error_message ($) {
        &set_ownership("$storederrorfile");
 }
 
-#
-## Function to get a list of all available network zones.
-#
-sub get_available_network_zones () {
-       # Get netsettings.
-       my %netsettings = ();
-       &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
-
-       # Obtain the configuration type from the netsettings hash.
-       my $config_type = $netsettings{'CONFIG_TYPE'};
-
-       # Hash which contains the conversation from the config mode
-       # to the existing network interface names. They are stored like
-       # an array.
-       #
-       # Mode "0" red is a modem and green
-       # Mode "1" red is a netdev and green
-       # Mode "2" red, green and orange
-       # Mode "3" red, green and blue
-       # Mode "4" red, green, blue, orange
-       my %config_type_to_interfaces = (
-               "0" => [ "red", "green" ],
-               "1" => [ "red", "green" ],
-               "2" => [ "red", "green", "orange" ],
-               "3" => [ "red", "green", "blue" ],
-               "4" => [ "red", "green", "blue", "orange" ]
-       );
-
-       # Obtain and dereference the corresponding network interaces based on the read
-       # network config type.
-       my @network_zones = @{ $config_type_to_interfaces{$config_type} };
-
-       # Return them.
-       return @network_zones;
-}
-
 #
 ## Function to check if the IDS is running.
 #
@@ -613,7 +578,7 @@ sub generate_home_net_file() {
        &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
 
        # Get available network zones.
-       my @network_zones = &get_available_network_zones();
+       my @network_zones = &Network::get_available_network_zones();
 
        # Temporary array to store network address and prefix of the configured
        # networks.
index 3d7f047438f7202b5529a5834e8f3816f41183d4..622731f96993acb7ef7998bfac1d4484d9a6c2dc 100644 (file)
@@ -444,6 +444,42 @@ sub get_mac_by_name($) {
        return $mac;
 }
 
+#
+## Function to get a list of all available network zones.
+#
+sub get_available_network_zones () {
+       # Get netsettings.
+       my %netsettings = ();
+       &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
+
+       # Obtain the configuration type from the netsettings hash.
+       my $config_type = $netsettings{'CONFIG_TYPE'};
+
+       # Hash which contains the conversation from the config mode
+       # to the existing network interface names. They are stored like
+       # an array.
+       #
+       # Mode "0" red is a modem and green
+       # Mode "1" red is a netdev and green
+       # Mode "2" red, green and orange
+       # Mode "3" red, green and blue
+       # Mode "4" red, green, blue, orange
+       my %config_type_to_interfaces = (
+               "0" => [ "red", "green" ],
+               "1" => [ "red", "green" ],
+               "2" => [ "red", "green", "orange" ],
+               "3" => [ "red", "green", "blue" ],
+               "4" => [ "red", "green", "blue", "orange" ]
+       );
+
+       # Obtain and dereference the corresponding network interaces based on the read
+       # network config type.
+       my @network_zones = @{ $config_type_to_interfaces{$config_type} };
+
+       # Return them.
+       return @network_zones;
+}
+
 1;
 
 # Remove the next line to enable the testsuite
index 3e938137efe3c06e21b9069f22bc756f017a90b2..7d75233b4fa29e5b40b8c468d1f7a6d982df36f2 100644 (file)
@@ -23,6 +23,7 @@ use strict;
 
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/ids-functions.pl";
+require "${General::swroot}/network-functions.pl";
 
 # Snort settings file, which contains the settings from the WUI.
 my $snort_settings_file = "${General::swroot}/snort/settings";
@@ -129,7 +130,7 @@ my %rulessettings = (
 );
 
 # Get all available network zones.
-my @network_zones = &IDS::get_available_network_zones();
+my @network_zones = &Network::get_available_network_zones();
 
 # Read-in snort settings file.
 &General::readhash("$snort_settings_file", \%snortsettings);
index bc31a341f0528a34e04e1e19e14c964989bb602a..83d5f52ba918be553e3a3d3fa0a7c504eaaeabd4 100644 (file)
@@ -29,6 +29,7 @@ require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 require "${General::swroot}/ids-functions.pl";
+require "${General::swroot}/network-functions.pl";
 
 my %color = ();
 my %mainsettings = ();
@@ -47,7 +48,7 @@ my %ignored=();
 
 # Get the available network zones, based on the config type of the system and store
 # the list of zones in an array.
-my @network_zones = &IDS::get_available_network_zones();
+my @network_zones = &Network::get_available_network_zones();
 
 # Check if openvpn is started and add it to the array of network zones.
 if ( -e "/var/run/openvpn.pid") {