From 712500d0dcb95a761c528211d23c664bd1033128 Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Wed, 9 Apr 2014 16:23:55 +0200 Subject: [PATCH] Firewall: Fix 10510 - Show all protocols from servicegroups (GRE,IPIP,IPV6,...) --- html/cgi-bin/firewall.cgi | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi index e9957943af..28ae464c60 100644 --- a/html/cgi-bin/firewall.cgi +++ b/html/cgi-bin/firewall.cgi @@ -1264,42 +1264,30 @@ sub get_serviceports my $udp; my $icmp; @protocols=(); + my @specprot=("IPIP","IPV6","IGMP","GRE","AH","ESP"); if($type eq 'service'){ foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ if ($customservice{$key}[0] eq $name){ - push (@protocols,$customservice{$key}[2]); + push (@protocols," ".$customservice{$key}[2]); } } }elsif($type eq 'group'){ foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } keys %customservicegrp){ if ($customservicegrp{$key}[0] eq $name){ - foreach my $key1 (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ - if ($customservice{$key1}[0] eq $customservicegrp{$key}[2]){ - if($customservice{$key1}[2] eq 'TCP'){ - $tcp='TCP'; - }elsif($customservice{$key1}[2] eq 'ICMP'){ - $icmp='ICMP'; - }elsif($customservice{$key1}[2] eq 'UDP'){ - $udp='UDP'; + if ($customservicegrp{$key}[2] ~~ @specprot){ + push (@protocols," ".$customservicegrp{$key}[2]); + }else{ + foreach my $key1 (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ + if ($customservice{$key1}[0] eq $customservicegrp{$key}[2]){ + if (!grep(/$customservice{$key1}[2]/, @protocols)){ + push (@protocols," ".$customservice{$key1}[2]); + } } } } } } } - if($tcp && $udp && $icmp){ - push (@protocols,"TCP,UDP,
ICMP"); - return @protocols; - } - if($tcp){ - push (@protocols,"TCP"); - } - if($udp){ - push (@protocols,"UDP"); - } - if($icmp){ - push (@protocols,"ICMP"); - } return @protocols; } sub getcolor -- 2.39.5