#!/usr/bin/perl ############################################################################### # # # IPFire.org - A linux based firewall # # 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 # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # ############################################################################### use strict; # enable only the following on debugging purpose #use warnings; #use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; my %outgrpsettings = (); my %netsettings = (); my %selected= () ; my $errormessage = ""; my $configpath = "/var/ipfire/outgoing/groups/"; my $servicefile = "/var/ipfire/outgoing/defaultservices"; my %color = (); my %mainsettings = (); &General::readhash("${General::swroot}/main/settings", \%mainsettings); &General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); &Header::showhttpheaders(); ### Values that have to be initialized $outgrpsettings{'ACTION'} = ''; $outgrpsettings{'ipgroup'} = 'none'; $outgrpsettings{'macgroup'} = 'none'; &Header::getcgihash(\%outgrpsettings); delete $outgrpsettings{'__CGI__'};delete $outgrpsettings{'x'};delete $outgrpsettings{'y'}; $selected{'ipgroup'}{$outgrpsettings{'ipgroup'}} = "selected='selected'"; $selected{'macgroup'}{$outgrpsettings{'macgroup'}} = "selected='selected'"; &Header::openpage($Lang::tr{'outgoing firewall groups'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); ############### # DEBUG DEBUG # &Header::openbox('100%', 'left', 'DEBUG'); # my $debugCount = 0; # foreach my $line (sort keys %outgrpsettings) { # print "$line = $outgrpsettings{$line}
\n"; # $debugCount++; # } # print " Count: $debugCount\n"; # &Header::closebox(); # DEBUG DEBUG ############### ############################################################################################################################ ############################################################################################################################ if ($outgrpsettings{'ACTION'} eq 'newipgroup') { &newipgroup(); } elsif ($outgrpsettings{'ACTION'} eq 'deleteipgroup' ) { unlink("$configpath/ipgroups/$outgrpsettings{'ipgroup'}"); } elsif ($outgrpsettings{'ACTION'} eq 'addipgroup') { if ( -e "$configpath/macgroups/$outgrpsettings{'ipgroup'}" ){ $errormessage = "$Lang::tr{'outgoing firewall group error'}"; } else { 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 ($outgrpsettings{'ACTION'} eq 'newmacgroup') { &newmacgroup(); } 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'}"; } else { open (FILE, ">$configpath/macgroups/$outgrpsettings{'macgroup'}") or die "Can't save $outgrpsettings{'macgroup'} settings $!"; 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(); } ############################################################################################################################ ############################################################################################################################ my @ipgroups = qx(ls $configpath/ipgroups/); if ($outgrpsettings{'ipgroup'} eq "none" and $#ipgroups >= 0 ){ $outgrpsettings{'ipgroup'} = $ipgroups[0];} my $ipgroupcontent = `cat $configpath/ipgroups/$outgrpsettings{'ipgroup'} 2>/dev/null`; $ipgroupcontent =~ s/\n/
/g; &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall ip groups'}); print <
$Lang::tr{'outgoing firewall ip groups'}


$ipgroupcontent

$Lang::tr{'outgoing firewall ip groups'} - $outgrpsettings{'ipgroup'}
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'}); print <
$Lang::tr{'outgoing firewall add ip group'}

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; }