#!/usr/bin/perl ############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2021 IPFire Development 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"; ###--- HTML HEAD ---### my $extraHead = < table#controls { width: 100%; border: none; table-layout: fixed; } #controls td { text-align: center; } #controls button { font-weight: bold; padding: 0.7em; min-width: 65%; } END ; ###--- END HTML HEAD ---### my %cgiparams=(); my $death = 0; my $rebirth = 0; &Header::showhttpheaders(); $cgiparams{'ACTION'} = ''; &Header::getcgihash(\%cgiparams); if ($cgiparams{'ACTION'} eq "SHUTDOWN") { $death = 1; &General::log($Lang::tr{'shutting down ipfire'}); &General::system('/usr/local/bin/ipfirereboot', 'down'); } elsif ($cgiparams{'ACTION'} eq "REBOOT") { $rebirth = 1; &General::log($Lang::tr{'rebooting ipfire'}); &General::system('/usr/local/bin/ipfirereboot', 'boot'); } elsif ($cgiparams{'ACTION'} eq "REBOOT_FSCK") { $rebirth = 1; &General::log($Lang::tr{'rebooting ipfire fsck'}); &General::system('/usr/local/bin/ipfirereboot', 'bootfs'); } if ($death == 0 && $rebirth == 0) { &Header::openpage($Lang::tr{'shutdown control'}, 1, $extraHead); &Header::openbigbox('100%', 'left'); &Header::openbox('100%', 'left'); print <
END ; &Header::closebox(); } else { my $message=''; my $title=''; my $refresh = ""; if ($death) { $title = $Lang::tr{'shutting down'}; $message = $Lang::tr{'ipfire has now shutdown'}; } else { $title = $Lang::tr{'rebooting'}; $message = $Lang::tr{'ipfire has now rebooted'}; } &Header::openpage($title, 0, $refresh); &Header::openbigbox('100%', 'center'); print <






$message END ; } &Header::closebigbox(); &Header::closepage();