summaryrefslogtreecommitdiffstats
path: root/src/usr/local/www/system_firmware_check.php
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2015-08-26 15:12:02 -0300
committerRenato Botelho <renato@netgate.com>2015-08-26 15:12:02 -0300
commit03b19a93f4d8d870507ee96121cee4acd748dd2a (patch)
tree71a34e9e7e73d13de21cb4ad831799fb10c30df4 /src/usr/local/www/system_firmware_check.php
parent7f410a121522c5d0e2660256ae50c1fde1df3645 (diff)
parent30ce58ac1ea27b758d5112cb5a3b190c9760f010 (diff)
downloadpfsense-03b19a93f4d8d870507ee96121cee4acd748dd2a.zip
pfsense-03b19a93f4d8d870507ee96121cee4acd748dd2a.tar.gz
Merge branch 'master' into bootstrap
Diffstat (limited to 'src/usr/local/www/system_firmware_check.php')
-rw-r--r--src/usr/local/www/system_firmware_check.php181
1 files changed, 181 insertions, 0 deletions
diff --git a/src/usr/local/www/system_firmware_check.php b/src/usr/local/www/system_firmware_check.php
new file mode 100644
index 0000000..c2cc9a1
--- /dev/null
+++ b/src/usr/local/www/system_firmware_check.php
@@ -0,0 +1,181 @@
+<?php
+/* $Id$ */
+/*
+ system_firmware_check.php
+ Copyright (C) 2008 Scott Ullrich <sullrich@gmail.com>
+ Copyright (C) 2013-2015 Electric Sheep Fencing, LP
+ All rights reserved.
+
+ originally part of m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
+ 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.
+*/
+/*
+ pfSense_MODULE: firmware
+*/
+
+##|+PRIV
+##|*IDENT=page-system-firmware-autoupdate
+##|*NAME=System: Firmware: Auto Update page
+##|*DESCR=Allow access to the 'System: Firmware: Auto Update' page.
+##|*MATCH=system_firmware_check.php*
+##|-PRIV
+
+$d_isfwfile = 1;
+require("guiconfig.inc");
+require_once("pfsense-utils.inc");
+
+$curcfg = $config['system']['firmware'];
+$pgtitle = array(gettext("System"), gettext("Firmware"), gettext("Auto Update"));
+include("head.inc");
+
+$tab_array = array();
+$tab_array[] = array(gettext("Manual Update"), false, "system_firmware.php");
+$tab_array[] = array(gettext("Auto Update"), true, "system_firmware_check.php");
+$tab_array[] = array(gettext("Updater Settings"), false, "system_firmware_settings.php");
+if($g['hidedownloadbackup'] == false)
+ $tab_array[] = array(gettext("Restore Full Backup"), false, "system_firmware_restorefullbackup.php");
+display_top_tabs($tab_array);
+?>
+
+<form action="system_firmware_auto.php" method="post">
+ <div id="statusheading" class="panel panel-default">
+ <div class="panel-heading"><h2 class="panel-title"><?=gettext('Update progress')?></h2></div>
+ <div class="panel-body" name="output" id="output"></div>
+ </div>
+
+ <div id="backupdiv" style="visibility:hidden">
+ <?php if ($g['hidebackupbeforeupgrade'] === false): ?>
+ <br /><input type="checkbox" name="backupbeforeupgrade" id="backupbeforeupgrade" /><?=gettext("Perform full backup prior to upgrade")?>
+ <?php endif; ?>
+ </div>
+ <br />
+ <input id='invokeupgrade' class="btn btn-warning" style='visibility:hidden' type="submit" value="<?=gettext("Invoke Auto Upgrade"); ?>" />
+
+<?php
+
+/* Define necessary variables. */
+if (isset($curcfg['alturl']['enable'])) {
+ $updater_url = "{$config['system']['firmware']['alturl']['firmwareurl']}";
+} else {
+ $updater_url = $g['update_url'];
+}
+$needs_system_upgrade = false;
+$static_text .= gettext("Downloading new version information...");
+
+$nanosize = "";
+if ($g['platform'] == "nanobsd") {
+ if (file_exists("/etc/nano_use_vga.txt")) {
+ $nanosize = "-nanobsd-vga-";
+ } else {
+ $nanosize = "-nanobsd-";
+ }
+
+ $nanosize .= strtolower(trim(file_get_contents("/etc/nanosize.txt")));
+}
+
+if (download_file_with_progress_bar("{$updater_url}/version{$nanosize}", "/tmp/{$g['product_name']}_version", 'read_body', 5, 5) === true) {
+ $remote_version = trim(@file_get_contents("/tmp/{$g['product_name']}_version"));
+}
+$static_text .= gettext("done") . "\\n";
+if (!$remote_version) {
+ $static_text .= gettext("Unable to check for updates.") . "\\n";
+ if (isset($curcfg['alturl']['enable'])) {
+ $static_text .= gettext("Could not contact custom update server.") . "\\n";
+ } else {
+ $static_text .= sprintf(gettext('Could not contact %1$s update server %2$s%3$s'), $g['product_name'], $updater_url, "\\n");
+ }
+} else {
+ $static_text .= gettext("Obtaining current version information...");
+ panel_text($static_text);
+
+ $current_installed_buildtime = trim(file_get_contents("/etc/version.buildtime"));
+
+ $static_text .= "done<br />";
+ panel_text($static_text);
+
+ if (pfs_version_compare($current_installed_buildtime, $g['product_version'], $remote_version) == -1) {
+ $needs_system_upgrade = true;
+ } else {
+ $static_text .= "<br />" . gettext("You are on the latest version.") . "<br />";
+ panel_text($static_text);
+ panel_heading_class('success');
+ }
+}
+
+update_output_window($static_text);
+if ($needs_system_upgrade == false) {
+ print("</form>");
+ require("foot.inc");
+
+ exit;
+}
+?>
+<script>
+ events.push(function(){
+ $('#invokeupgrade').css('visibility','visible');
+ $('#backupdiv').css('visibility','visible');
+ });
+</script>
+<?php
+
+$txt = gettext("A new version is now available") . "<br />";
+$txt .= gettext("Current version") .": ". $current_installed_version . "<br />";
+if ($g['platform'] == "nanobsd") {
+ $txt .= " " . gettext("NanoBSD Size") . " : " . trim(file_get_contents("/etc/nanosize.txt")) . "<br />";
+}
+$txt .= " " . gettext("Built On") .": ". $current_installed_buildtime . "<br />";
+$txt .= " " . gettext("New version") .": ". htmlspecialchars($remote_version, ENT_QUOTES | ENT_HTML401). "<br /><br />";
+$txt .= " " . gettext("Update source") .": ". $updater_url . "<br />";
+panel_text($txt);
+panel_heading_class('info');
+?>
+
+</form>
+<?php
+
+// Update the class of the message panel so that it's color changes
+// Use danger, success, info, warning, default etc
+function panel_heading_class($newclass = 'default') {
+?>
+ <script>
+ events.push(function(){
+ $('#statusheading').removeClass().addClass('panel panel-' + '<?=$newclass?>');
+ });
+ </script>
+<?php
+}
+
+// Update the text in the panel-heading
+function panel_text($text) {
+?>
+ <script>
+ events.push(function(){
+ $('#output').html('<?=$text?>');
+ });
+ </script>
+<?php
+}
+
+include("foot.inc");
OpenPOWER on IntegriCloud