X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Foutgoinggrp.cgi;h=1c3d6952cd2a601906467328027756437f7030e4;hb=12a8cc1ed90b108fbbcb2d1093e754f05e98bdc1;hp=69656d07294c7c7533a6e5d47d72052550f0e9bd;hpb=6411b32c6e1c6ffa066d27b8acbb2178ec33578d;p=people%2Fteissler%2Fipfire-2.x.git diff --git a/html/cgi-bin/outgoinggrp.cgi b/html/cgi-bin/outgoinggrp.cgi index 69656d072..1c3d6952c 100644 --- a/html/cgi-bin/outgoinggrp.cgi +++ b/html/cgi-bin/outgoinggrp.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPTifre Team # +# Copyright (C) 2005-2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -48,13 +48,13 @@ my %mainsettings = (); ### Values that have to be initialized $outgrpsettings{'ACTION'} = ''; $outgrpsettings{'ipgroup'} = 'none'; -$outgrpsettings{'portgroup'} = 'none'; +$outgrpsettings{'macgroup'} = 'none'; &Header::getcgihash(\%outgrpsettings); delete $outgrpsettings{'__CGI__'};delete $outgrpsettings{'x'};delete $outgrpsettings{'y'}; $selected{'ipgroup'}{$outgrpsettings{'ipgroup'}} = "selected='selected'"; -$selected{'portgroup'}{$outgrpsettings{'portgroup'}} = "selected='selected'"; +$selected{'macgroup'}{$outgrpsettings{'macgroup'}} = "selected='selected'"; &Header::openpage($Lang::tr{'outgoing firewall groups'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); @@ -65,9 +65,9 @@ $selected{'portgroup'}{$outgrpsettings{'portgroup'}} = "selected='selected'"; # my $debugCount = 0; # foreach my $line (sort keys %outgrpsettings) { # print "$line = $outgrpsettings{$line}
\n"; - # $debugCount++; +# $debugCount++; # } -# print " Count: $debugCount\n"; +# print "Count: $debugCount\n"; # &Header::closebox(); # DEBUG DEBUG ############### @@ -75,24 +75,66 @@ $selected{'portgroup'}{$outgrpsettings{'portgroup'}} = "selected='selected'"; ############################################################################################################################ ############################################################################################################################ -if ($errormessage) -{ - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "$errormessage\n"; - print " \n"; - &Header::closebox(); -} - if ($outgrpsettings{'ACTION'} eq 'newipgroup') { &newipgroup(); +}elsif ($outgrpsettings{'ACTION'} eq 'editipgroup') +{ + &editipgroup(); } elsif ($outgrpsettings{'ACTION'} eq 'deleteipgroup' ) { unlink("$configpath/ipgroups/$outgrpsettings{'ipgroup'}"); } elsif ($outgrpsettings{'ACTION'} eq 'addipgroup') { - open (FILE, ">$configpath/ipgroups/$outgrpsettings{'ipgroup'}") or die "Can't save $outgrpsettings{'ipgroup'} settings $!"; - flock (FILE, 2); - print FILE $outgrpsettings{'ipgroupcontent'}."\n"; - close FILE; + + if ( -e "$configpath/macgroups/$outgrpsettings{'ipgroup'}" ){ + $errormessage = "$Lang::tr{'outgoing firewall group error'}"; + } elsif ( $outgrpsettings{'ipgroup'} =~ /\W/ ){ + $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'ipgroup'}; + } elsif ( $outgrpsettings{'ipgroup'} eq "all" || $outgrpsettings{'ipgroup'} eq "red" || $outgrpsettings{'ipgroup'} eq "blue" || + $outgrpsettings{'ipgroup'} eq "green" || $outgrpsettings{'ipgroup'} eq "orange" || $outgrpsettings{'ipgroup'} eq "ip" || + $outgrpsettings{'ipgroup'} eq "mac" || $outgrpsettings{'ipgroup'} eq "ovpn" || $outgrpsettings{'ipgroup'} eq "ipsec" ) { + $errormessage = "$Lang::tr{'outgoing firewall reserved groupname'}"; + } else { + open (FILE, ">$configpath/ipgroups/$outgrpsettings{'ipgroup'}") or die "Can't save $outgrpsettings{'ipgroup'} settings $!"; + $outgrpsettings{'ipgroupcontent'} =~ s/\s*$//; + flock (FILE, 2); + print FILE $outgrpsettings{'ipgroupcontent'}."\n"; + close FILE; + } +} + +if ($outgrpsettings{'ACTION'} eq 'newmacgroup') +{ + &newmacgroup(); +}elsif ($outgrpsettings{'ACTION'} eq 'editmacgroup') +{ + &editmacgroup(); +}elsif ($outgrpsettings{'ACTION'} eq 'deletemacgroup' ) { + unlink("$configpath/macgroups/$outgrpsettings{'macgroup'}"); +} elsif ($outgrpsettings{'ACTION'} eq 'addmacgroup') { + + if ( -e "$configpath/ipgroups/$outgrpsettings{'macgroup'}" ){ + $errormessage = "$Lang::tr{'outgoing firewall group error'}"; + } elsif ( $outgrpsettings{'macgroup'} =~ /\W/ ){ + $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'macgroup'}; + } elsif ( $outgrpsettings{'macgroup'} eq "all" || $outgrpsettings{'macgroup'} eq "red" || $outgrpsettings{'macgroup'} eq "blue" || + $outgrpsettings{'macgroup'} eq "green" || $outgrpsettings{'macgroup'} eq "orange" || $outgrpsettings{'macgroup'} eq "ip" || + $outgrpsettings{'macgroup'} eq "mac" || $outgrpsettings{'macgroup'} eq "ovpn" || $outgrpsettings{'macgroup'} eq "ipsec" ) { + $errormessage = "$Lang::tr{'outgoing firewall reserved groupname'}"; + } else { + open (FILE, ">$configpath/macgroups/$outgrpsettings{'macgroup'}") or die "Can't save $outgrpsettings{'macgroup'} settings $!"; + $outgrpsettings{'macgroupcontent'} =~ s/\s*$//; + flock (FILE, 2); + print FILE $outgrpsettings{'macgroupcontent'}."\n"; + close FILE; + } +} + +if ($errormessage) +{ + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "$errormessage\n"; + print " \n"; + &Header::closebox(); } ############################################################################################################################ @@ -107,7 +149,7 @@ $ipgroupcontent =~ s/\n/
/g; &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall ip groups'}); print < +
@@ -146,20 +188,27 @@ print < + + + + + + +
- + + + + + + +
-
+
-
+ @@ -172,9 +221,98 @@ END ; &Header::closebox(); +############################################################################################################################ +############################################################################################################################ + +my @macgroups = qx(ls $configpath/macgroups/); +if ($outgrpsettings{'macgroup'} eq "none" and $#macgroups >= 0 ){ $outgrpsettings{'macgroup'} = $macgroups[0];} + +my $macgroupcontent = `cat $configpath/macgroups/$outgrpsettings{'macgroup'} 2>/dev/null`; +$macgroupcontent =~ s/\n/
/g; + +&Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall mac groups'}); + +print < +
+ + + + + + + + + + + + + + + + + + + + + + + + +
$Lang::tr{'outgoing firewall mac groups'}

+ + +

$macgroupcontent

$Lang::tr{'outgoing firewall mac groups'} - $outgrpsettings{'macgroup'}
+ + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+ + + +
+
+
+ + + +
+
+ +END +; +&Header::closebox(); + &Header::closebigbox(); &Header::closepage(); + +############################################################################################################################ +############################################################################################################################ + + sub newipgroup { &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall add ip group'}); @@ -190,7 +328,46 @@ print <
- + + + + +
+ +
+ +END +; + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit 0; +} + +sub editipgroup +{ +my $ipgroupcontent = `cat $configpath/ipgroups/$outgrpsettings{'ipgroup'} 2>/dev/null`; + + &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall edit ip group'}); + +print < + + + + + + + + + + +
$Lang::tr{'outgoing firewall edit ip group'}

+ @@ -199,7 +376,83 @@ print <
- + +
+ +END +; + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit 0; +} + +sub newmacgroup +{ + &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall add mac group'}); + +print < + + + + + + + + + + + + + + +
$Lang::tr{'outgoing firewall add mac group'}

+ + + + +
+ +
+ +END +; + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit 0; +} + +sub editmacgroup +{ +my $macgroupcontent = `cat $configpath/macgroups/$outgrpsettings{'macgroup'} 2>/dev/null`; + + &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall edit mac group'}); + +print < + + + + + + + + + + + + +
$Lang::tr{'outgoing firewall edit mac group'}

+ + + + +
+
@@ -210,4 +463,4 @@ END &Header::closebigbox(); &Header::closepage(); exit 0; -} \ No newline at end of file +}