]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - html/cgi-bin/shutdown.cgi
Großes Update:
[ipfire-2.x.git] / html / cgi-bin / shutdown.cgi
index 2f62c7880c1e212e04e5ddb9e30e6d8e549dbc9b..4ccf805ae0b9766d161ac5726dfa46346c95c785 100644 (file)
-#!/usr/bin/perl\r
-#\r
-# SmoothWall CGIs\r
-#\r
-# This code is distributed under the terms of the GPL\r
-#\r
-# (c) The SmoothWall Team\r
-#\r
-# $Id: shutdown.cgi,v 1.5.2.10 2006/01/02 16:21:00 eoberlander Exp $\r
-#\r
-\r
-use strict;\r
-\r
-# enable only the following on debugging purpose\r
-#use warnings;\r
-#use CGI::Carp 'fatalsToBrowser';\r
-\r
-require 'CONFIG_ROOT/general-functions.pl';\r
-require "${General::swroot}/lang.pl";\r
-require "${General::swroot}/header.pl";\r
-\r
-my %cgiparams=();\r
-my $death = 0;\r
-my $rebirth = 0;\r
-my $default_time = '03:15';\r
-\r
-&Header::showhttpheaders();\r
-\r
-$cgiparams{'ACTION'} = '';\r
-&Header::getcgihash(\%cgiparams);\r
-\r
-if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) {\r
-       $death = 1;\r
-       &General::log($Lang::tr{'shutting down ipcop'});\r
-       #system '/usr/local/bin/ipcopdeath';\r
-       system '/usr/local/bin/ipcopreboot down';\r
-} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) {\r
-       $rebirth = 1;\r
-       &General::log($Lang::tr{'rebooting ipcop'});\r
-       #system '/usr/local/bin/ipcoprebirth';\r
-       system '/usr/local/bin/ipcopreboot boot';\r
-} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {\r
-       my $days='';\r
-       my $n = 1;\r
-       # build list of days\r
-       map ($cgiparams{$_} eq 'on' ?  $days .= ",".$n++ : $n++ ,\r
-           ('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY') );\r
-\r
-       # if days is empty, it is a remove else it is a change\r
-       if (length ($days)){\r
-           substr($days,0,1) = '';     #kill front comma\r
-           &General::log("Scheduling reboot on $days at $cgiparams{'TIME'}");\r
-           my $min;\r
-           my $hour;\r
-           ($hour,$min) = split (':', $cgiparams{'TIME'});\r
-           $days = "'*'" if ($days eq '1,2,3,4,5,6,7');\r
-           my $mode = ($cgiparams{'MODE'} eq 'halt') ? '-h' : '-r';\r
-           system "/usr/local/bin/ipcopreboot cron+ $min $hour $days $mode"; #reboot checks values of $hour & $min\r
-       } else {\r
-           &General::log("Remove scheduled reboot");\r
-           system '/usr/local/bin/ipcopreboot cron-';\r
-       }\r
-}\r
-if ($death == 0 && $rebirth == 0) {\r
-\r
-       &Header::openpage($Lang::tr{'shutdown control'}, 1, '');\r
-\r
-       &Header::openbigbox('100%', 'left');\r
-\r
-       print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
-\r
-       &Header::openbox('100%', 'left', $Lang::tr{'shutdown2'});\r
-       print <<END\r
-<table width='100%'>\r
-<tr>\r
-       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td>\r
-       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td>\r
-</tr>\r
-</table>\r
-END\r
-       ;\r
-       &Header::closebox();\r
-\r
-       &Header::openbox('100%', 'left', $Lang::tr{'reboot schedule'});\r
-       my %checked=();\r
-       my $reboot_at = $default_time;\r
-       my $days = '';\r
-\r
-       #decode the shutdown line stored in crontab\r
-       #get the line\r
-       open(FILE, "/usr/local/bin/ipcopreboot cron?|");\r
-       my $schedule = <FILE>;\r
-       close (FILE);\r
-\r
-       if ($schedule) { # something exist\r
-           $schedule =~ /(\d+) (\d+) \* \* ([1234567*,]+) .* (-[h|r])/;\r
-           $reboot_at = sprintf("%.02d",$2) . ':' . sprintf("%.02d",$1);  # hour (03:45)\r
-           $days = $3;         # 1,2,3... or *\r
-           if ($4 eq '-h') {\r
-                $checked{'MODE'}{'halt'} = "checked='checked'";\r
-            } else {\r
-                $checked{'MODE'}{'reboot'} = "checked='checked'";\r
-            }\r
-       }\r
-       #decode $days\r
-       if ($days eq '*') {\r
-           $checked{'MONDAY'} = "checked='checked'";\r
-           $checked{'TUESDAY'} = "checked='checked'";\r
-           $checked{'WEDNESDAY'} = "checked='checked'";\r
-           $checked{'THURSDAY'} = "checked='checked'";\r
-           $checked{'FRIDAY'} = "checked='checked'";\r
-           $checked{'SATURDAY'} = "checked='checked'";\r
-           $checked{'SUNDAY'} = "checked='checked'";\r
-       } else {\r
-           $checked{'MONDAY'} = "checked='checked'"    if ($days =~ /1/);\r
-           $checked{'TUESDAY'} = "checked='checked'"   if ($days =~ /2/);\r
-           $checked{'WEDNESDAY'} = "checked='checked'" if ($days =~ /3/);\r
-           $checked{'THURSDAY'} = "checked='checked'"  if ($days =~ /4/);\r
-           $checked{'FRIDAY'} = "checked='checked'"    if ($days =~ /5/);\r
-           $checked{'SATURDAY'} = "checked='checked'"  if ($days =~ /6/);\r
-           $checked{'SUNDAY'} = "checked='checked'"    if ($days =~ /7/);          \r
-       }\r
-\r
-       print <<END\r
-<table width='100%'>\r
-<tr>\r
-    <td class='boldbase' colspan='2'><b>$Lang::tr{'time'}</b></td>\r
-    <td class='boldbase' colspan='2'><b>$Lang::tr{'day'}</b></td>\r
-    <td class='boldbase'><b>$Lang::tr{'action'}</b></td>\r
-</tr>\r
-<tr>\r
-END\r
-        ;\r
-        print "<td align='left' width='15%' class='base' valign='top' rowspan='2'>", &select_hour_var("TIME", $reboot_at);\r
-        print <<END\r
-</td>\r
-    <td>\r
-        <input type='checkbox' name='MONDAY'    $checked{'MONDAY'}></td>\r
-    <td width='15%' class='base'>\r
-        $Lang::tr{'monday'}</td>\r
-    <td>\r
-        <input type='radio' name='MODE' value='reboot' $checked{'MODE'}{'reboot'} /></td>\r
-    <td width='70%' class='base'>$Lang::tr{'reboot'}</td></tr>\r
-<tr>\r
-    <td>\r
-        <input type='checkbox' name='TUESDAY'   $checked{'TUESDAY'}></td>\r
-    <td width='15%' class='base'>\r
-        $Lang::tr{'tuesday'}</td>\r
-    <td>\r
-        <input type='radio' name='MODE' value='halt' $checked{'MODE'}{'halt'} /></td>\r
-    <td class='base'>$Lang::tr{'shutdown'}</td></tr>\r
-<tr>\r
-    <td>&nbsp;</td>\r
-    <td>\r
-        <input type='checkbox' name='WEDNESDAY' $checked{'WEDNESDAY'}></td>\r
-    <td width='15%' class='base'>\r
-        $Lang::tr{'wednesday'}</td></tr>\r
-<tr>\r
-    <td>&nbsp;</td>\r
-    <td>\r
-        <input type='checkbox' name='THURSDAY'  $checked{'THURSDAY'}></td>\r
-    <td width='15%' class='base'>\r
-        $Lang::tr{'thursday'}</td></tr>\r
-<tr>\r
-    <td>&nbsp;</td>\r
-    <td>\r
-        <input type='checkbox' name='FRIDAY'    $checked{'FRIDAY'}></td>\r
-    <td width='15%' class='base'>\r
-        $Lang::tr{'friday'}</td></tr>\r
-<tr>\r
-    <td>&nbsp;</td>\r
-    <td>\r
-        <input type='checkbox' name='SATURDAY'  $checked{'SATURDAY'}></td>\r
-    <td width='15%' class='base'>\r
-        $Lang::tr{'saturday'}</td></tr>\r
-<tr>\r
-    <td>&nbsp;</td>\r
-    <td>\r
-        <input type='checkbox' name='SUNDAY'    $checked{'SUNDAY'}></td>\r
-    <td width='15%' class='base'>\r
-        $Lang::tr{'sunday'}</td></tr>\r
-</table>\r
-\r
-<table width='100%'>\r
-<hr />\r
-<tr>\r
-    <td width='60%'>&nbsp;</td>\r
-    <td width='30%' align='center'>\r
-        <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />\r
-    </td>\r
-    <td width='10%' align='right'>\r
-        <a href='${General::adminmanualurl}/system.html#shutdown' target='_blank'>\r
-        <img src='/images/web-support.png' title='$Lang::tr{'online help en'}' /></a></td>\r
-</tr>\r
-</table>\r
-\r
-END\r
-;\r
-       &Header::closebox();\r
-       print "</form>\n";\r
-} else {\r
-       my $message='';\r
-       my $title='';\r
-       my $refresh = "<meta http-equiv='refresh' content='5; URL=/cgi-bin/index.cgi' />";\r
-       if ($death) {\r
-               $title = $Lang::tr{'shutting down'};\r
-               $message = $Lang::tr{'ipcop has now shutdown'};\r
-       } else {\r
-               $title = $Lang::tr{'rebooting'};\r
-               $message = $Lang::tr{'ipcop has now rebooted'};\r
-       }\r
-       &Header::openpage($title, 0, $refresh);\r
-\r
-       &Header::openbigbox('100%', 'center');\r
-       print <<END\r
-<div align='center'>\r
-<table width='100%' bgcolor='#ffffff'>\r
-<tr><td align='center'>\r
-<br /><br /><img src='/ipcop_big.gif' /><br /><br /><br />\r
-</td></tr>\r
-</table>\r
-<br />\r
-<font size='6'>$message</font>\r
-</div>\r
-END\r
-       ;\r
-}\r
-\r
-&Header::closebigbox();\r
-&Header::closepage();\r
-\r
-\r
-\r
-# Create a named select box containing valid times from quarter to quarter.\r
-sub select_hour_var {\r
-       # Create a variable containing the SELECT with selected value variable name and current value selected\r
-        my $select_hour_var = shift;\r
-       my $selected_hour = shift;\r
-\r
-       my $select_hour = "<select name='$select_hour_var'>";\r
-       my $hh = 0;\r
-       my $mm = 15;\r
-       my $str = '00:00';\r
-       for (my $x=0; $x<(24*4); $x++) {\r
-           my $check = $selected_hour eq $str ?  "selected='selected'" : '';\r
-           $select_hour .= "<Option $check value='$str'>$str";\r
-           $str = sprintf("%.02d", $hh) . ":" . sprintf("%.02d", $mm);\r
-           $mm += 15;\r
-           if ($mm==60) {$mm=0; $hh++; }\r
-       }\r
-       $select_hour .= "</select>\n";\r
-       return ($select_hour);\r
-}\r
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require 'CONFIG_ROOT/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+my %cgiparams=();
+my $death = 0;
+my $rebirth = 0;
+my $default_time = '03:15';
+
+&Header::showhttpheaders();
+
+$cgiparams{'ACTION'} = '';
+&Header::getcgihash(\%cgiparams);
+
+if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) {
+       $death = 1;
+       &General::log($Lang::tr{'shutting down ipfire'});
+       #system '/usr/local/bin/ipfiredeath';
+       system '/usr/local/bin/ipfirereboot down';
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) {
+       $rebirth = 1;
+       &General::log($Lang::tr{'rebooting ipfire'});
+       #system '/usr/local/bin/ipfirerebirth';
+       system '/usr/local/bin/ipfirereboot boot';
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {
+       my $days='';
+       my $n = 1;
+       # build list of days
+       map ($cgiparams{$_} eq 'on' ?  $days .= ",".$n++ : $n++ ,
+           ('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY') );
+
+       # if days is empty, it is a remove else it is a change
+       if (length ($days)){
+           substr($days,0,1) = '';     #kill front comma
+           &General::log("Scheduling reboot on $days at $cgiparams{'TIME'}");
+           my $min;
+           my $hour;
+           ($hour,$min) = split (':', $cgiparams{'TIME'});
+           $days = "'*'" if ($days eq '1,2,3,4,5,6,7');
+           my $mode = ($cgiparams{'MODE'} eq 'halt') ? '-h' : '-r';
+           system "/usr/local/bin/ipfirereboot cron+ $min $hour $days $mode"; #reboot checks values of $hour & $min
+       } else {
+           &General::log("Remove scheduled reboot");
+           system '/usr/local/bin/ipfirereboot cron-';
+       }
+}
+if ($death == 0 && $rebirth == 0) {
+
+       &Header::openpage($Lang::tr{'shutdown control'}, 1, '');
+
+       &Header::openbigbox('100%', 'left');
+
+       print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
+
+       &Header::openbox('100%', 'left', $Lang::tr{'shutdown2'});
+       print <<END
+<table width='100%'>
+<tr>
+       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td>
+       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td>
+</tr>
+</table>
+END
+       ;
+       &Header::closebox();
+
+       &Header::openbox('100%', 'left', $Lang::tr{'reboot schedule'});
+       my %checked=();
+       my $reboot_at = $default_time;
+       my $days = '';
+
+       #decode the shutdown line stored in crontab
+       #get the line
+       open(FILE, "/usr/local/bin/ipfirereboot cron?|");
+       my $schedule = <FILE>;
+       close (FILE);
+
+       if ($schedule) { # something exist
+           $schedule =~ /(\d+) (\d+) \* \* ([1234567*,]+) .* (-[h|r])/;
+           $reboot_at = sprintf("%.02d",$2) . ':' . sprintf("%.02d",$1);  # hour (03:45)
+           $days = $3;         # 1,2,3... or *
+           if ($4 eq '-h') {
+                $checked{'MODE'}{'halt'} = "checked='checked'";
+            } else {
+                $checked{'MODE'}{'reboot'} = "checked='checked'";
+            }
+       }
+       #decode $days
+       if ($days eq '*') {
+           $checked{'MONDAY'} = "checked='checked'";
+           $checked{'TUESDAY'} = "checked='checked'";
+           $checked{'WEDNESDAY'} = "checked='checked'";
+           $checked{'THURSDAY'} = "checked='checked'";
+           $checked{'FRIDAY'} = "checked='checked'";
+           $checked{'SATURDAY'} = "checked='checked'";
+           $checked{'SUNDAY'} = "checked='checked'";
+       } else {
+           $checked{'MONDAY'} = "checked='checked'"    if ($days =~ /1/);
+           $checked{'TUESDAY'} = "checked='checked'"   if ($days =~ /2/);
+           $checked{'WEDNESDAY'} = "checked='checked'" if ($days =~ /3/);
+           $checked{'THURSDAY'} = "checked='checked'"  if ($days =~ /4/);
+           $checked{'FRIDAY'} = "checked='checked'"    if ($days =~ /5/);
+           $checked{'SATURDAY'} = "checked='checked'"  if ($days =~ /6/);
+           $checked{'SUNDAY'} = "checked='checked'"    if ($days =~ /7/);          
+       }
+
+       print <<END
+<table width='100%'>
+<tr>
+    <td class='boldbase' colspan='2'><b>$Lang::tr{'time'}</b></td>
+    <td class='boldbase' colspan='2'><b>$Lang::tr{'day'}</b></td>
+    <td class='boldbase'><b>$Lang::tr{'action'}</b></td>
+</tr>
+<tr>
+END
+        ;
+        print "<td align='left' width='15%' class='base' valign='top' rowspan='2'>", &select_hour_var("TIME", $reboot_at);
+        print <<END
+</td>
+    <td>
+        <input type='checkbox' name='MONDAY'    $checked{'MONDAY'}></td>
+    <td width='15%' class='base'>
+        $Lang::tr{'monday'}</td>
+    <td>
+        <input type='radio' name='MODE' value='reboot' $checked{'MODE'}{'reboot'} /></td>
+    <td width='70%' class='base'>$Lang::tr{'reboot'}</td></tr>
+<tr>
+    <td>
+        <input type='checkbox' name='TUESDAY'   $checked{'TUESDAY'}></td>
+    <td width='15%' class='base'>
+        $Lang::tr{'tuesday'}</td>
+    <td>
+        <input type='radio' name='MODE' value='halt' $checked{'MODE'}{'halt'} /></td>
+    <td class='base'>$Lang::tr{'shutdown'}</td></tr>
+<tr>
+    <td>&nbsp;</td>
+    <td>
+        <input type='checkbox' name='WEDNESDAY' $checked{'WEDNESDAY'}></td>
+    <td width='15%' class='base'>
+        $Lang::tr{'wednesday'}</td></tr>
+<tr>
+    <td>&nbsp;</td>
+    <td>
+        <input type='checkbox' name='THURSDAY'  $checked{'THURSDAY'}></td>
+    <td width='15%' class='base'>
+        $Lang::tr{'thursday'}</td></tr>
+<tr>
+    <td>&nbsp;</td>
+    <td>
+        <input type='checkbox' name='FRIDAY'    $checked{'FRIDAY'}></td>
+    <td width='15%' class='base'>
+        $Lang::tr{'friday'}</td></tr>
+<tr>
+    <td>&nbsp;</td>
+    <td>
+        <input type='checkbox' name='SATURDAY'  $checked{'SATURDAY'}></td>
+    <td width='15%' class='base'>
+        $Lang::tr{'saturday'}</td></tr>
+<tr>
+    <td>&nbsp;</td>
+    <td>
+        <input type='checkbox' name='SUNDAY'    $checked{'SUNDAY'}></td>
+    <td width='15%' class='base'>
+        $Lang::tr{'sunday'}</td></tr>
+</table>
+
+<table width='100%'>
+<hr />
+<tr>
+    <td width='60%'>&nbsp;</td>
+    <td width='30%' align='center'>
+        <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
+    </td>
+    <td width='10%' align='right'>
+        <a href='${General::adminmanualurl}/system.html#shutdown' target='_blank'>
+        <img src='/images/web-support.png' title='$Lang::tr{'online help en'}' /></a></td>
+</tr>
+</table>
+
+END
+;
+       &Header::closebox();
+       print "</form>\n";
+} else {
+       my $message='';
+       my $title='';
+       my $refresh = "<meta http-equiv='refresh' content='5; URL=/cgi-bin/index.cgi' />";
+       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 <<END
+<div align='center'>
+<table width='100%' bgcolor='#ffffff'>
+<tr><td align='center'>
+<br /><br /><img src='/ipfire_big.gif' /><br /><br /><br />
+</td></tr>
+</table>
+<br />
+<font size='6'>$message</font>
+</div>
+END
+       ;
+}
+
+&Header::closebigbox();
+&Header::closepage();
+
+
+
+# Create a named select box containing valid times from quarter to quarter.
+sub select_hour_var {
+       # Create a variable containing the SELECT with selected value variable name and current value selected
+        my $select_hour_var = shift;
+       my $selected_hour = shift;
+
+       my $select_hour = "<select name='$select_hour_var'>";
+       my $hh = 0;
+       my $mm = 15;
+       my $str = '00:00';
+       for (my $x=0; $x<(24*4); $x++) {
+           my $check = $selected_hour eq $str ?  "selected='selected'" : '';
+           $select_hour .= "<Option $check value='$str'>$str";
+           $str = sprintf("%.02d", $hh) . ":" . sprintf("%.02d", $mm);
+           $mm += 15;
+           if ($mm==60) {$mm=0; $hh++; }
+       }
+       $select_hour .= "</select>\n";
+       return ($select_hour);
+}