#!/usr/local/bin/php . 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("guiconfig.inc"); require_once("notices.inc"); $swapinfo = `/usr/sbin/swapinfo`; if(stristr($swapinfo,"%") == true) $showswap=true; /* User recently restored his config. If packages are installed lets resync */ if(file_exists("/needs_package_sync")) { if($config['installedpackages'] <> "") { conf_mount_rw(); unlink("/needs_package_sync"); header("Location: pkg_mgr_install.php?mode=reinstallall"); exit; } } if(file_exists("/trigger_initial_wizard")) { conf_mount_rw(); unlink("/trigger_initial_wizard"); conf_mount_ro(); $pgtitle = "pfSense first time setup"; include("head.inc"); ?>
\n"; echo "

\n"; echo "

\n"; echo "Welcome to pfSense!

\n"; echo "One moment while we start the initial setup wizard.

\n"; echo "Embedded platform users: Please be patient, the wizard takes a little longer to run than the normal gui.

\n"; echo "To bypass the wizard, click on the pfSense wizard on the initial page.\n"; echo "

\n"; echo "\n"; echo "\n"; exit; } /* find out whether there's hardware encryption (hifn) */ unset($hwcrypto); $fd = @fopen("{$g['varlog_path']}/dmesg.boot", "r"); if ($fd) { while (!feof($fd)) { $dmesgl = fgets($fd); if (preg_match("/^hifn.: (.*?),/", $dmesgl, $matches)) { $hwcrypto = $matches[1]; break; } } fclose($fd); } function get_uptime() { exec("/sbin/sysctl -n kern.boottime", $boottime); preg_match("/sec = (\d+)/", $boottime[0], $matches); $boottime = $matches[1]; $uptime = time() - $boottime; if ($uptime > 60) $uptime += 30; $updays = (int)($uptime / 86400); $uptime %= 86400; $uphours = (int)($uptime / 3600); $uptime %= 3600; $upmins = (int)($uptime / 60); $uptimestr = ""; if ($updays > 1) $uptimestr .= "$updays days, "; else if ($updays > 0) $uptimestr .= "1 day, "; $uptimestr .= sprintf("%02d:%02d", $uphours, $upmins); return $uptimestr; } function get_cputicks() { $cputicks = explode(" ", `/sbin/sysctl -n kern.cp_time`); return $cputicks; } function get_cpuusage($cpuTicks, $cpuTicks2) { $diff = array(); $diff['user'] = ($cpuTicks2[0] - $cpuTicks[0])+1; $diff['nice'] = ($cpuTicks2[1] - $cpuTicks[1])+1; $diff['sys'] = ($cpuTicks2[2] - $cpuTicks[2])+1; $diff['intr'] = ($cpuTicks2[3] - $cpuTicks[3])+1; $diff['idle'] = ($cpuTicks2[4] - $cpuTicks[4])+1; //echo ""; $totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle']; $cpuUsage = round(100 * (1 - $diff['idle'] / $totalDiff), 0); return $cpuUsage; } function get_pfstate() { global $config; if (isset($config['system']['maximumstates']) and $config['system']['maximumstates'] > 0) $maxstates="/{$config['system']['maximumstates']}"; else $maxstates="/10000"; $curentries = `/sbin/pfctl -si |grep current`; if (preg_match("/([0-9]+)/", $curentries, $matches)) { $curentries = $matches[1]; } return $curentries . $maxstates; } $pgtitle = "pfSense webGUI"; /* include header and other code */ include("head.inc"); ?>
"; ?>

System Overview

"") { echo " "; echo " "; echo " "; echo " "; } ?>
System information
Name
Version
built on
Platform
Hardware crypto
Uptime "; ?>
Last config change
State table size "; ?>
Show states
CPU usage "; echo ""; echo ""; echo " "; echo ""; //echo $cpuUsage . "%"; ?>
Memory usage "; echo ""; echo ""; echo " "; echo ""; //echo $memUsage . "%"; ?>
SWAP usage "; echo ""; echo ""; echo " "; echo ""; //echo $swapUsage . "%"; ?>
Temperature "; // Initialize hw monitor exec("/usr/local/sbin/env4801 -i"); $Temp = rtrim(`/usr/local/sbin/env4801 | grep Temp |cut -c24-25`); echo ""; echo ""; echo ""; echo " "; echo ""; echo "
Disk usage "; echo ""; echo ""; echo " "; echo $diskusage . "%"; ?>
"; exit; } $counter = 0; While(!Connection_Aborted()) { /* Update CPU meter */ sleep(1); $cpuTicks = get_cputicks(); sleep(2); $cpuTicks2 = get_cputicks(); $cpuUsage = get_cpuusage($cpuTicks, $cpuTicks2); /* Update memory usage */ exec("/sbin/sysctl -n vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count " . "vm.stats.vm.v_wire_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count", $memory); $totalMem = $memory[0] + $memory[1] + $memory[2] + $memory[3] + $memory[4]; $freeMem = $memory[4]; $usedMem = $totalMem - $freeMem; $memUsage = round(($usedMem * 100) / $totalMem, 0); echo "\n"; if(are_notices_pending() == true and $found_notices == false) { /* found a notice, lets redirect so they can see the notice */ $counter = 500; } /* * prevent user from running out of ram. * firefox and ie can be a bear on ram usage! */ $counter++; if($counter > 120) { echo "Redirecting to Main Status.

"; echo ""; exit; } } ?>