]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/firewall.cgi
Firewall: deleted subnet from source and target addresses if manually used
[people/teissler/ipfire-2.x.git] / html / cgi-bin / firewall.cgi
index 52733ed2d63d66b64a375693edb7964991864791..8b02b04467546a8ea728dd772f4b9d929c782dfd 100755 (executable)
@@ -1426,9 +1426,9 @@ sub newrule
        open (CONN1,"/var/ipfire/red/local-ipaddress");
        my $redip = <CONN1>;
        close(CONN1);
-       if ($fwdfwsettings{'RULE_ACTION'} eq '' && $fwdfwsettings{'POLICY'} eq 'MODE2'){
+       if (! $fwdfwsettings{'RULE_ACTION'} && $fwdfwsettings{'POLICY'} eq 'MODE2'){
                $fwdfwsettings{'RULE_ACTION'}='DROP';
-       }elsif($fwdfwsettings{'RULE_ACTION'} eq '' && $fwdfwsettings{'POLICY'} eq 'MODE1'){
+       }elsif(! $fwdfwsettings{'RULE_ACTION'} && $fwdfwsettings{'POLICY'} eq 'MODE1'){
                $fwdfwsettings{'RULE_ACTION'}='ACCEPT';
        }
        $checked{'grp1'}{$fwdfwsettings{'grp1'}}                                = 'CHECKED';
@@ -1448,7 +1448,6 @@ sub newrule
        $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}}                = 'CHECKED';
        $checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}}                  = 'CHECKED';
        $checked{'nat'}{$fwdfwsettings{'nat'}}          = 'CHECKED';
-       $checked{"RULE_ACTION"}{$fwdfwsettings{'RULE_ACTION'}}  = 'CHECKED';
        $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}}             = 'selected';
        $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}}                 = 'selected';
        $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected';
@@ -1509,7 +1508,6 @@ sub newrule
                                $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}}                = 'CHECKED';
                                $checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}}                  = 'CHECKED';
                                $checked{'nat'}{$fwdfwsettings{'nat'}}                                  = 'CHECKED';
-                               $checked{"RULE_ACTION"}{$fwdfwsettings{'RULE_ACTION'}}  = 'CHECKED';
                                $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}}             = 'selected';
                                $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}}                 = 'selected';
                                $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected';
@@ -1555,6 +1553,11 @@ sub newrule
                        }
                }       
        }
+       # Split manual source and target address and delete the subnet
+       my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}});
+       if ($scidr eq '32'){$fwdfwsettings{$fwdfwsettings{'grp1'}}=$sip;}
+       my ($dip,$dcidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp2'}});
+       if ($scidr eq '32'){$fwdfwsettings{$fwdfwsettings{'grp2'}}=$dip;}
        &Header::openbox('100%', 'left', $Lang::tr{'fwdfw addrule'});
        &Header::closebox();
        &Header::openbox('100%', 'left', $Lang::tr{'fwdfw source'});
@@ -1840,9 +1843,9 @@ END
 END
 
                &Header::closebox;
+               $checked{"RULE_ACTION"}{$fwdfwsettings{'RULE_ACTION'}}  = 'CHECKED';
                print <<END;
                        <hr><br>
-
                        <center>
                                <table width="80%" border="0">
                                        <tr>