#!/usr/bin/perl ############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2007 Michael Tremer & Christian Schmidt # # # # 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 %dnssettings=(); my $errormessage = ''; &Header::showhttpheaders(); &General::readhash("${General::swroot}/dns/settings", \%dnssettings); &Header::getcgihash(\%dnssettings); &Header::openpage($Lang::tr{'dns title'}, 1, ); &Header::openbigbox('100%', 'left', '', $errormessage); if ($dnssettings{'ACTION'} eq $Lang::tr{'save'}) { if ((&General::validip($dnssettings{"DNS0"}) == 1)&&(&General::validip($dnssettings{"DNS1"}) == 1)) { if ($errormessage eq "") { &General::writehash("${General::swroot}/dns/settings", \%dnssettings); &Header::openbox('100%', 'left', $Lang::tr{'dns saved'}); print "$Lang::tr{'dns saved txt'}\n"; &Header::closebox(); } } else { if ((&General::validip($dnssettings{"DNS0"}) == 0)&&(&General::validip($dnssettings{"DNS1"}) == 1)){ $errormessage = $Lang::tr{'dns error 0'}; } if ((&General::validip($dnssettings{"DNS1"}) == 0)&&(&General::validip($dnssettings{"DNS0"}) == 1)){ $errormessage = $Lang::tr{'dns error 1'}; } if ((&General::validip($dnssettings{"DNS1"}) == 0)&&(&General::validip($dnssettings{"DNS0"}) == 0)){ $errormessage = $Lang::tr{'dns error 01'}; } } } if ($dnssettings{'ACTION'} eq $Lang::tr{'reconnect'}) { system("/usr/local/bin/redctrl restart >/dev/null 2>&1 &"); &Header::openbox('100%', 'left', $Lang::tr{'dns address recon'} ); print "$Lang::tr{'dns address done'}\n"; &Header::closebox(); } if ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) { system("cat /dev/null > ${General::swroot}/dns/settings &"); &Header::openbox('100%', 'left', $Lang::tr{'dns address deleted'} ); print "$Lang::tr{'dns address deleted txt'}\n"; &Header::closebox(); } # DPC move error message to top so it is seen! if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); print "$errormessage \n"; &Header::closebox(); } print "
\n"; &Header::openbox('100%', 'left', $Lang::tr{'dns header'}); print < $Lang::tr{'dns desc'}
$Lang::tr{'dns list'}
  $Lang::tr{'dns new 0'} END ; if ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) { print < END ; } else { print < END ; } print < $Lang::tr{'dns new 1'} END ; if ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) { print < END ; } else { print < END ; } print <
END ; if ($dnssettings{'ACTION'} eq $Lang::tr{'save'} && $errormessage eq "") { print <           END ; } elsif ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) { print <      END ; } elsif ($dnssettings{'ACTION'} eq $Lang::tr{'save'}) { print < END ; } else { print <      END ; } print < END ; &Header::closebox(); print "\n"; &Header::closebigbox(); &Header::closepage();