From bcbc9897e392a237105fc2e12af2323804bd2a42 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 31 Jan 2019 09:50:47 +0100 Subject: [PATCH] ids-functions.pl: Grab address for RED by using get_red_address() function. Signed-off-by: Stefan Schantl --- config/cfgroot/ids-functions.pl | 57 ++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl index 1f782b5c15..4452b4be3d 100644 --- a/config/cfgroot/ids-functions.pl +++ b/config/cfgroot/ids-functions.pl @@ -597,31 +597,20 @@ sub generate_home_net_file() { # Loop through the array of available network zones. foreach my $zone (@network_zones) { - # Convert current zone name into upper case. - $zone = uc($zone); - - # Generate key to access the required data from the netsettings hash. - my $zone_netaddress = $zone . "_NETADDRESS"; - my $zone_netmask = $zone . "_NETMASK"; - - # Obtain the settings from the netsettings hash. - my $netaddress = $netsettings{$zone_netaddress}; - my $netmask = $netsettings{$zone_netmask}; - - # Convert the subnetmask into prefix notation. - my $prefix = &Network::convert_netmask2prefix($netmask); + # Check if the current processed zone is red. + if($zone eq "red") { + # Grab the IP-address of the red interface. + my $red_address = &get_red_address(); - # Generate full network string. - my $network = join("/", $netaddress,$prefix); + # Check if an address has been obtained. + if ($red_address) { + # Generate full network string. + my $red_network = join("/", $red_address, "32"); - # Check if the network is valid. - if(&Network::check_subnet($network)) { - # Add the generated network to the array of networks. - push(@networks, $network); - } + # Add the red network to the array of networks. + push(@networks, $red_network); + } - # Check if the current processed zone is red. - if($zone eq "RED") { # Check if the configured RED_TYPE is static. if ($netsettings{'RED_TYPE'} eq "STATIC") { # Get configured and enabled aliases. @@ -636,6 +625,30 @@ sub generate_home_net_file() { push(@networks, $network); } } + # Process remaining network zones. + } else { + # Convert current zone name into upper case. + $zone = uc($zone); + + # Generate key to access the required data from the netsettings hash. + my $zone_netaddress = $zone . "_NETADDRESS"; + my $zone_netmask = $zone . "_NETMASK"; + + # Obtain the settings from the netsettings hash. + my $netaddress = $netsettings{$zone_netaddress}; + my $netmask = $netsettings{$zone_netmask}; + + # Convert the subnetmask into prefix notation. + my $prefix = &Network::convert_netmask2prefix($netmask); + + # Generate full network string. + my $network = join("/", $netaddress,$prefix); + + # Check if the network is valid. + if(&Network::check_subnet($network)) { + # Add the generated network to the array of networks. + push(@networks, $network); + } } } -- 2.39.2