]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Firewall: fix rules.pl when using custom hosts/networks and services no rule was...
authorAlexander Marx <amarx@ipfire.org>
Wed, 9 Oct 2013 08:31:35 +0000 (10:31 +0200)
committerAlexander Marx <amarx@ipfire.org>
Wed, 9 Oct 2013 08:31:35 +0000 (10:31 +0200)
Also extended JS code to correctly show ICMP Types only, if NO Targetport is selcted

config/forwardfw/rules.pl
html/cgi-bin/forwardfw.cgi

index 3abe02bab47f574446b7cfe5cf07623738375d51..fcaade2d6632f3416ff742b161642e8c72c73ba7 100755 (executable)
@@ -252,7 +252,7 @@ sub buildrules
                                foreach my $DPROT (@DPROT){
                                        $DPORT = &get_port($hash,$key,$DPROT);
                                        $PROT=$DPROT;
-                                       $PROT="-p $PROT" if ($PROT ne '');
+                                       $PROT="-p $PROT" if ($PROT ne '' && $PROT ne ' ');
                                        foreach my $a (sort keys %sourcehash){
                                                foreach my $b (sort keys %targethash){
                                                        if ($sourcehash{$a}[0] ne $targethash{$b}[0] && $targethash{$b}[0] ne 'none' || $sourcehash{$a}[0] eq '0.0.0.0/0.0.0.0'){
@@ -311,7 +311,7 @@ sub buildrules
                                foreach my $DPROT (@DPROT){
                                        $DPORT = &get_port($hash,$key,$DPROT);
                                        $PROT=$DPROT;
-                                       $PROT="-p $PROT" if ($PROT ne '');
+                                       $PROT="-p $PROT" if ($PROT ne '' && $PROT ne ' ');
                                        foreach my $a (sort keys %sourcehash){
                                                foreach my $b (sort keys %targethash){
                                                        if ($sourcehash{$a}[0] ne $targethash{$b}[0] && $targethash{$b}[0] ne 'none' || $sourcehash{$a}[0] eq '0.0.0.0/0.0.0.0'){
index 4c70a2503d30a71af81f5256e8eb7bf3043dcc21..f8f14add269eb96a27e0bb12ce9aca3a8aac24c7 100755 (executable)
@@ -123,6 +123,14 @@ function toggle_elements( id ) {
        else{
                document.getElementById(id).style.display='none';
        }
+       if(document.getElementById('targetport').style.display== "none" && document.getElementById('PROT').value === 'ICMP' )
+       {
+               document.getElementById('PROTOKOLL').style.display='block';
+       }
+       if(document.getElementById('targetport').style.display== "block" && document.getElementById('PROT').value === 'ICMP' )
+       {
+               document.getElementById('PROTOKOLL').style.display='none';
+       }
        return true;
 }
 function hide_elements()
@@ -1755,6 +1763,9 @@ END
                if ($fwdfwsettings{'USESRV'} ne 'ON'){
                        print"<script language='JavaScript'>hide_elements('targetport');</script>";
                }
+               if ($fwdfwsettings{'USESRV'} eq 'ON' && $fwdfwsettings{'PROT'} eq 'ICMP'){
+                       print"<script language='JavaScript'>hide_elements('PROTOKOLL');</script>";
+               }
                &Header::closebox;
                #---Activate/logging/remark-------------------------------------
                &Header::openbox('100%', 'left', $Lang::tr{'fwdfw additional'});