aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo G. Baio (dbaio) <dbaio@bsd.com.br>2015-03-24 23:56:49 -0300
committerDanilo G. Baio (dbaio) <dbaio@bsd.com.br>2015-03-24 23:56:49 -0300
commitfe08a37778fb4d0b9996ef1d248da3e70d29c6e8 (patch)
tree661bb6afa36bc01d31a96babc690dc07cacf8528
parent727f60de26c92d93fd18b1f41c4b9775f2a21b9f (diff)
downloadpfsense-packages-fe08a37778fb4d0b9996ef1d248da3e70d29c6e8.tar.gz
pfsense-packages-fe08a37778fb4d0b9996ef1d248da3e70d29c6e8.tar.bz2
pfsense-packages-fe08a37778fb4d0b9996ef1d248da3e70d29c6e8.zip
apcupsd - improve status page
-rwxr-xr-xconfig/apcupsd/apcupsd_status.php70
1 files changed, 63 insertions, 7 deletions
diff --git a/config/apcupsd/apcupsd_status.php b/config/apcupsd/apcupsd_status.php
index 693ec290..68c0b5aa 100755
--- a/config/apcupsd/apcupsd_status.php
+++ b/config/apcupsd/apcupsd_status.php
@@ -28,6 +28,7 @@
*/
require("guiconfig.inc");
+require_once("/usr/local/pkg/apcupsd.inc");
$pf_version=substr(trim(file_get_contents("/etc/version")),0,3);
if ($pf_version < 2.0)
@@ -38,6 +39,9 @@ include("head.inc");
function puts( $arg ) { echo "$arg\n"; }
+if (isset($_GET['strapcaccess']))
+ $strapcaccess = trim($_GET['strapcaccess']);
+
?>
<style>
@@ -98,14 +102,66 @@ pre {
<div id="mainarea" style="padding-top: 0px; padding-bottom: 0px; ">
<table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="6">
- <tr><td>
+ <form name="frm_apcupsd_status" method="GET">
+ <tr>
+ <td width="14%" valign="top" class="vncellreq">Host:</td>
+ <td width="86%" class="vtable">
+ <input name="strapcaccess" type="text" class="formfld unknown" id="strapcaccess" size="22" value="<? echo "{$strapcaccess}"; ?>">
+ <br/>
+ <span class="vexpl">
+ Default: <b>localhost</b><br/>
+ apcaccess uses apcupsd's inbuilt Network Information Server (NIS) to obtain the current status information <br/>
+ from the UPS on the local or remote computer. It is therefore necessary to have the following configuration directives: <br/>
+ NETSERVER on<br/>
+ NISPORT 3551<br/>
+ <br/>
+ <?php if ($pf_version < 2.2): ?>
+ <input type="Submit" value="Execute" class="formbtn" disabled/>
+ <?php else: ?>
+ <input type="Submit" value="Execute" class="formbtn"/>
+ <?php endif; ?>
+ </span>
+ </td>
+ </tr>
+ </form>
+ <tr><td colspan="2">
<?php
- puts("<pre>");
- putenv("PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin");
- $ph = popen('apcaccess 2>&1', "r" );
- while ($line = fgets($ph)) echo htmlspecialchars($line);
- pclose($ph);
- puts("</pre>");
+ $nis_server = check_nis_running_apcupsd();
+
+ if ($pf_version >= 2.2){
+ if($strapcaccess) {
+ echo "Running: apcaccess -h {$strapcaccess} <br/>";
+ puts("<pre>");
+ putenv("PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin");
+ $ph = popen("apcaccess -h {$strapcaccess} 2>&1", "r" );
+ while ($line = fgets($ph)) echo htmlspecialchars($line);
+ pclose($ph);
+ puts("</pre>");
+ }elseif($nis_server){
+ $nisip=(check_nis_ip_apcupsd() != ''? check_nis_ip_apcupsd() : "0.0.0.0");
+ $nisport=(check_nis_port_apcupsd() != ''? check_nis_port_apcupsd() : "3551");
+ echo "Running: apcaccess -h {$nisip}:{$nisport} <br/>";
+ puts("<pre>");
+ putenv("PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin");
+ $ph = popen("apcaccess -h localhost 2>&1", "r" );
+ while ($line = fgets($ph)) echo htmlspecialchars($line);
+ pclose($ph);
+ puts("</pre>");
+ }else
+ echo "Not running Network Information Server (NIS). In order to run apcaccess on localhost, you need to enable it on APCupsd General settings. <br/>";
+ }else{
+ echo "pfSense version prior to 2.2 runs APCupsd 3.14.10 and apcaccess doesn't accept host parameter. <br/>";
+ if ($nis_server){
+ puts("<pre>");
+ putenv("PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin");
+ $ph = popen("apcaccess 2>&1", "r" );
+ while ($line = fgets($ph)) echo htmlspecialchars($line);
+ pclose($ph);
+ puts("</pre>");
+ }else
+ echo "Not Network Information Server (NIS). In order to run apcaccess on localhost, you need to enable it on APCupsd General settings. <br/>";
+ }
+
?>
</td></tr>
</table>