Commit d640192e authored by Franco Fichtner's avatar Franco Fichtner

rc: root console tidy-up

Adjust tabs to spaces, copyright headers and add missing one from
restore script as per:

https://github.com/pfsense/pfsense/commit/7d7ce752
parent d63d59af
This diff is collapsed.
...@@ -2,31 +2,31 @@ ...@@ -2,31 +2,31 @@
<?php <?php
/* /*
Copyright (C) 2005 Scott Ullrich and Colin Smith * Copyright (C) 2005 Scott Ullrich and Colin Smith
Copyright (C) 2009 Ermal Lui * Copyright (C) 2009 Ermal Lui
All rights reserved * All rights reserved
*
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
*
1. Redistributions of source code must retain the above copyright notice, * 1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
*
2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
*
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
require_once("config.inc"); require_once("config.inc");
require_once("interfaces.inc"); require_once("interfaces.inc");
......
...@@ -2,30 +2,30 @@ ...@@ -2,30 +2,30 @@
<?php <?php
/* /*
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>. * Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>
All rights reserved. * All rights reserved.
*
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
*
1. Redistributions of source code must retain the above copyright notice, * 1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
*
2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
*
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
require_once("util.inc"); require_once("util.inc");
require_once("config.inc"); require_once("config.inc");
......
...@@ -2,31 +2,31 @@ ...@@ -2,31 +2,31 @@
<?php <?php
/* /*
Copyright (C) 2004 Bachman Kharazmi * Copyright (C) 2004 Bachman Kharazmi
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net> * Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>
All rights reserved. * All rights reserved.
*
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
*
1. Redistributions of source code must retain the above copyright notice, * 1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
*
2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
*
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
require_once("util.inc"); require_once("util.inc");
require_once("config.inc"); require_once("config.inc");
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<?php <?php
/* /*
* Copyright (C) 2017 Franco Fichter <franco@opnsense.org>
* Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>. * Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
* All rights reserved. * All rights reserved.
* *
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
require_once("config.inc"); require_once("config.inc");
require_once("util.inc"); require_once("util.inc");
......
...@@ -2,30 +2,30 @@ ...@@ -2,30 +2,30 @@
<?php <?php
/* /*
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net> * Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>
All rights reserved. * All rights reserved.
*
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
*
1. Redistributions of source code must retain the above copyright notice, * 1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
*
2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
*
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
require_once("util.inc"); require_once("util.inc");
require_once("config.inc"); require_once("config.inc");
......
#!/usr/local/bin/php #!/usr/local/bin/php
<?php <?php
/*
* Copyright (C) 2011 Jim Pingle <jimp@pfsense.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
require_once('config.inc'); require_once('config.inc');
$cnf = OPNsense\Core\Config::getInstance(); $cnf = OPNsense\Core\Config::getInstance();
...@@ -8,112 +34,120 @@ $confvers = $cnf->getBackups(true); ...@@ -8,112 +34,120 @@ $confvers = $cnf->getBackups(true);
$fp = fopen('php://stdin', 'r'); $fp = fopen('php://stdin', 'r');
function print_backup_info($backup_info, $number) { function print_backup_info($backup_info, $number)
if($backup_info['time'] != 0) {
$date = date('n/j/y H:i:s', $backup_info['time']); if ($backup_info['time'] != 0) {
else $date = date('n/j/y H:i:s', $backup_info['time']);
$date = 'Unknown'; } else {
$date = 'Unknown';
list($page, $reason) = explode(": ", $backup_info['description'], 2); }
if (empty($reason)) {
$reason = $page; list($page, $reason) = explode(": ", $backup_info['description'], 2);
$page = 'Unknown Page'; if (empty($reason)) {
} $reason = $page;
$page = 'Unknown Page';
echo sprintf("%02d", $number) . ". {$date}\tv{$backup_info['version']}\t{$page}\n"; }
if ($reason) {
echo " {$reason}\n"; echo sprintf("%02d", $number) . ". {$date}\tv{$backup_info['version']}\t{$page}\n";
} if ($reason) {
echo " {$reason}\n";
}
} }
function list_backups($which="all") { function list_backups($which = 'all')
global $confvers; {
global $confvers;
if (count($confvers) == 0) {
echo 'No backups found in the configuration history.'; if (count($confvers) == 0) {
return; echo 'No backups found in the configuration history.';
} return;
}
$c = 0 ;
foreach ($confvers as $filename => $bckinfo) { $c = 0 ;
$c++; foreach ($confvers as $filename => $bckinfo) {
if (is_numeric($which) && ($c != $which)) $c++;
continue; if (is_numeric($which) && ($c != $which)) {
print_backup_info($bckinfo,$c); continue;
} }
print_backup_info($bckinfo,$c);
}
} }
function choose_backup() { function choose_backup()
global $fp, $confvers; {
if (count($confvers) == 0) { global $fp, $confvers;
echo 'No backups found in the configuration history.';
return -1; if (count($confvers) == 0) {
} echo 'No backups found in the configuration history.';
echo "Which configuration would you like to restore?\n"; return -1;
echo " 1-" . count($confvers) . " : "; }
$number = strtoupper(chop(fgets($fp)));
if (is_numeric($number) && ($number > 0) && ($number <= count($confvers))) { echo "Which configuration would you like to restore?\n";
return $number; echo " 1-" . count($confvers) . " : ";
} else {
echo "That is not a valid backup number.\n"; $number = strtoupper(chop(fgets($fp)));
return -1; if (is_numeric($number) && ($number > 0) && ($number <= count($confvers))) {
} return $number;
}
echo "That is not a valid backup number.\n";
return -1;
} }
function restore_history_backup($number) function restore_history_backup($number)
{ {
global $fp, $confvers; global $fp, $confvers;
if (is_numeric($number) && ($number > 0) && ($number <= count($confvers))) { if (is_numeric($number) && ($number > 0) && ($number <= count($confvers))) {
echo "\nIs this the backup you wish to restore?\n"; echo "\nIs this the backup you wish to restore?\n";
list_backups($number); list_backups($number);
$filename = array_keys($confvers)[$number-1]; $filename = array_keys($confvers)[$number-1];
$thisbackup = $confvers[$filename]; $thisbackup = $confvers[$filename];
echo '[y/N]: '; echo '[y/N]: ';
$confirm = strtoupper(chop(fgets($fp))); $confirm = strtoupper(chop(fgets($fp)));
if ($confirm == 'Y') { if ($confirm == 'Y') {
$cnf = OPNsense\Core\Config::getInstance(); $cnf = OPNsense\Core\Config::getInstance();
if($cnf->restoreBackup($filename)){ if ($cnf->restoreBackup($filename)){
echo "\n"; echo "\n";
echo sprintf('Successfully reverted to timestamp %s with description "%s".', date('n/j/y H:i:s', $thisbackup['time']), $thisbackup['description']); echo sprintf('Successfully reverted to timestamp %s with description "%s".', date('n/j/y H:i:s', $thisbackup['time']), $thisbackup['description']);
echo "\nYou may need to reboot the firewall or restart services before the restored configuration is fully active.\n\n"; echo "\nYou may need to reboot the firewall or restart services before the restored configuration is fully active.\n\n";
} else { } else {
echo "Unable to revert to the selected configuration.\n"; echo "Unable to revert to the selected configuration.\n";
} }
} else { } else {
echo "Restore canceled.\n"; echo "Restore canceled.\n";
} }
} else { } else {
echo "Restore canceled due to invalid input.\n"; echo "Restore canceled due to invalid input.\n";
} }
} }
while (true) { while (true) {
echo "\nRestore Backup from Configuration History\n\n"; echo "\nRestore Backup from Configuration History\n\n";
echo "1) List Backups\n"; echo "1) List Backups\n";
echo "2) Restore Backup\n"; echo "2) Restore Backup\n";
echo "q) Quit\n\n\n"; echo "q) Quit\n\n\n";
echo "Please select an option to continue: "; echo "Please select an option to continue: ";
$command = strtolower(chop(fgets($fp))); $command = strtolower(chop(fgets($fp)));
switch ($command) { switch ($command) {
case "q": case "q":
case "quit": case "quit":
echo "\n"; echo "\n";
fclose($fp); fclose($fp);
die; die;
break; break;
case "1": case "1":
list_backups(); list_backups();
break; break;
case "2": case "2":
$number = choose_backup(); $number = choose_backup();
restore_history_backup($number); restore_history_backup($number);
fclose($fp); fclose($fp);
die; die;
break; break;
} }
} }
fclose($fp); fclose($fp);
...@@ -2,30 +2,30 @@ ...@@ -2,30 +2,30 @@
<?php <?php
/* /*
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>. * Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>
All rights reserved. * All rights reserved.
*
Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
*
1. Redistributions of source code must retain the above copyright notice, * 1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
*
2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
*
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
require_once("config.inc"); require_once("config.inc");
require_once("console.inc"); require_once("console.inc");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment