]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - html/cgi-bin/forwardfw.cgi
Forward Firewall: Bugfix of last commit. Added "Interface" to source or target that...
[ipfire-2.x.git] / html / cgi-bin / forwardfw.cgi
index 5ddeaf129ab1724a280b2d9e7ec0ccf6d1df1702..9bd4606f9d316a8761f994e8a857743af8a1502a 100755 (executable)
@@ -75,7 +75,7 @@ my %aliases=();
 my %optionsfw=();
 my %ifaces=();
 
-my $VERSION='0.9.9.9';
+my $VERSION='0.9.9.9a';
 my $color;
 my $confignet          = "${General::swroot}/fwhosts/customnetworks";
 my $confighost         = "${General::swroot}/fwhosts/customhosts";
@@ -133,8 +133,8 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
                $errormessage.=$Lang::tr{'fwdfw useless rule'}."<br>";
        }
        #check if we try to break rules
-       if(     $fwdfwsettings{$fwdfwsettings{'grp1'}} eq 'IPFire' && $fwdfwsettings{'grp2'} eq 'ipfire'){
-               $errormessage.=$Lang::tr{'fwdfw err same'};
+       if(     $fwdfwsettings{'grp1'} eq 'ipfire_src' && $fwdfwsettings{'grp2'} eq 'ipfire'){
+               $errormessage=$Lang::tr{'fwdfw err same'};
        }
        #INPUT part
        if($fwdfwsettings{'grp2'} eq 'ipfire' && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ORANGE'){
@@ -772,7 +772,7 @@ sub checkrule
        }
        #check if source and target identical
        if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ALL'){
-               $errormessage.=$Lang::tr{'fwdfw err same'};
+               $errormessage=$Lang::tr{'fwdfw err same'};
                return $errormessage;
        }
        #get source and targetip address if possible
@@ -2204,8 +2204,12 @@ END
                        print"<td align='center'>$protz</td>";
                        @protocols=();
                        #SOURCE
+                       my $ipfireiface;
                        &getcolor($$hash{$key}[3],$$hash{$key}[4],\%customhost);
                        print"<td align='center' width='160' $tdcolor>";
+                       if ($$hash{$key}[3] eq 'ipfire_src'){
+                               $ipfireiface='Interface ';
+                       }
                        if ($$hash{$key}[3] eq 'std_net_src'){
                                print &get_name($$hash{$key}[4]);
                        }elsif ($$hash{$key}[3] eq 'src_addr'){
@@ -2216,9 +2220,9 @@ END
                                        print $$hash{$key}[4];
                                }
                        }elsif ($$hash{$key}[4] eq 'RED1'){
-                               print "$Lang::tr{'fwdfw red'}";
+                               print "$ipfireiface $Lang::tr{'fwdfw red'}";
                        }else{
-                               print $$hash{$key}[4];
+                               print "ipfireiface $$hash{$key}[4]";
                        }
                        $tdcolor='';
                        #SOURCEPORT
@@ -2259,12 +2263,17 @@ END
                                }
                                print"<br>->";
                        }
+                       if ($$hash{$key}[5] eq 'ipfire'){
+                               $ipfireiface='Interface';
+                       }
                        if ($$hash{$key}[5] eq 'std_net_tgt' || $$hash{$key}[5] eq 'ipfire' && $$hash{$key}[6] eq 'RED' || $$hash{$key}[6] eq 'RED1' || $$hash{$key}[6] eq 'GREEN' || $$hash{$key}[6] eq 'ORANGE' || $$hash{$key}[6] eq 'BLUE' ){
-                               if ($$hash{$key}[6] eq 'RED1')
+                               if ($$hash{$key}[6] eq 'RED1'){
+                                       print "$ipfireiface $Lang::tr{'red1'}";
+                               }elsif ($$hash{$key}[6] ne 'RED')
                                {
-                                       print $Lang::tr{'red1'};
+                                       print "$ipfireiface $$hash{$key}[6]";
                                }else{
-                                       print &get_name($$hash{$key}[6]);
+                                       print "$$hash{$key}[6]";
                                }
                        }elsif ($$hash{$key}[5] eq 'tgt_addr'){
                                my ($split1,$split2) = split("/",$$hash{$key}[6]);
@@ -2274,7 +2283,7 @@ END
                                        print $$hash{$key}[6];
                                }
                        }else{
-                               print $$hash{$key}[6];
+                               print "$$hash{$key}[6]";
                        }
                        $tdcolor='';
                        #TARGETPORT