aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/backup/backup.inc45
-rw-r--r--config/backup/backup.php110
-rw-r--r--config/backup/backup.xml60
-rwxr-xr-xconfig/backup/backup_edit.php173
-rw-r--r--config/blinkled/binaries/blinkledbin9311 -> 0 bytes
-rw-r--r--config/blinkled/blinkled.inc75
-rw-r--r--config/blinkled/blinkled.xml105
-rw-r--r--config/blinkled8/blinkled.inc78
-rw-r--r--config/blinkled8/blinkled.xml52
-rw-r--r--config/darkstat/darkstat.sh22
-rw-r--r--config/darkstat/darkstat.xml405
-rw-r--r--config/filer/filer.inc12
-rw-r--r--config/filer/filer.xml12
-rw-r--r--config/iperf/iperf.xml126
-rw-r--r--config/iperf/iperfserver.xml111
-rw-r--r--config/lcdproc/lcdproc.inc2
-rw-r--r--config/notes/notes.inc42
-rw-r--r--config/notes/notes.xml78
-rw-r--r--config/nrpe2/nrpe2.inc82
-rw-r--r--config/nrpe2/nrpe2.xml56
-rw-r--r--config/nut/nut.inc2
-rwxr-xr-xconfig/openvpn-client-export/openvpn-client-export.inc26
-rwxr-xr-xconfig/openvpn-client-export/openvpn-client-export.xml4
-rwxr-xr-xconfig/openvpn-client-export/vpn_openvpn_export.php135
-rw-r--r--config/openvpn-client-export/vpn_openvpn_export_shared.php114
-rw-r--r--config/pfflowd/pfflowd.xml68
-rw-r--r--config/servicewatchdog/services_servicewatchdog.php175
-rw-r--r--config/servicewatchdog/services_servicewatchdog_add.php4
-rw-r--r--config/servicewatchdog/servicewatchdog.inc25
-rw-r--r--config/servicewatchdog/servicewatchdog.xml2
-rw-r--r--config/servicewatchdog/servicewatchdog_cron.php3
-rw-r--r--config/sudo/sudo.inc12
-rw-r--r--config/sudo/sudo.xml2
-rw-r--r--config/systempatches/patches.inc23
-rw-r--r--config/systempatches/system_patches.php247
-rw-r--r--config/systempatches/system_patches_edit.php28
-rw-r--r--config/systempatches/systempatches.xml15
-rw-r--r--config/tftp2/tftp.inc118
-rw-r--r--config/tftp2/tftp.xml74
-rw-r--r--config/tftp2/tftp_files.php169
-rw-r--r--config/vnstat2/vnstat2.inc100
-rw-r--r--config/vnstat2/vnstat2.xml83
-rw-r--r--config/vnstat2/vnstati.xml50
-rw-r--r--config/vnstat2/vnstatoutput.xml50
-rw-r--r--config/vnstat2/www/diag_vnstat.php55
-rw-r--r--config/vnstat2/www/diag_vnstat2.php53
-rw-r--r--config/vnstat2/www/vnstat2_img.php28
-rw-r--r--config/vnstat2/www/vnstati.php41
-rw-r--r--config/widentd/widentd.xml189
-rw-r--r--pkg_config.10.xml352
-rw-r--r--pkg_config.8.xml6
-rw-r--r--pkg_config.8.xml.amd642
52 files changed, 2226 insertions, 1675 deletions
diff --git a/config/backup/backup.inc b/config/backup/backup.inc
index 748b7fc6..e395756a 100644
--- a/config/backup/backup.inc
+++ b/config/backup/backup.inc
@@ -3,10 +3,10 @@
/*
/* ========================================================================== */
/*
- backup.inc
- Copyright (C) 2008 Mark J Crane
- All rights reserved.
- */
+ backup.inc
+ Copyright (C) 2008 Mark J Crane
+ All rights reserved.
+*/
/* ========================================================================== */
/*
Redistribution and use in source and binary forms, with or without
@@ -34,28 +34,28 @@
if (!function_exists("byte_convert")) {
function byte_convert( $bytes ) {
- if ($bytes<=0)
+ if ($bytes <= 0) {
return '0 Byte';
+ }
- $convention=1000; //[1000->10^x|1024->2^x]
- $s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
- $e=floor(log($bytes,$convention));
- return round($bytes/pow($convention,$e),2).' '.$s[$e];
+ $convention = 1000; //[1000->10^x|1024->2^x]
+ $s = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
+ $e = floor(log($bytes, $convention));
+ return round($bytes/pow($convention, $e), 2) . ' ' . $s[$e];
}
}
-
-function backup_sync_package_php()
-{
- global $config;
- if($config['installedpackages']['backup']['config'] != "") {
+function backup_sync_package_php() {
+
+ global $config;
+ if ($config['installedpackages']['backup']['config'] != "") {
conf_mount_rw();
- foreach($config['installedpackages']['backup']['config'] as $rowhelper) {
+ foreach ($config['installedpackages']['backup']['config'] as $rowhelper) {
if ($rowhelper['enabled'] != "false") {
//$tmp_php = base64_decode($rowhelper['php']);
if (strlen($tmp_php) > 0) {
- $tmp .= "// name: ".$rowhelper['name']." \n";
- $tmp .= "// description: ".$rowhelper['description']." \n\n";
+ $tmp .= "// name: " . $rowhelper['name'] . " \n";
+ $tmp .= "// description: " . $rowhelper['description'] . " \n\n";
$tmp .= base64_decode($rowhelper['php']);
$tmp .= "\n";
}
@@ -65,16 +65,13 @@ function backup_sync_package_php()
}
}
-
-function backup_sync_package()
-{
- global $config;
+function backup_sync_package() {
+ global $config;
backup_sync_package_php();
}
-function backup_install_command()
-{
+function backup_install_command() {
global $config;
conf_mount_rw();
@@ -87,7 +84,7 @@ function backup_install_command()
backup_sync_package();
conf_mount_ro();
-
+
}
?>
diff --git a/config/backup/backup.php b/config/backup/backup.php
index 3cada9b3..d4debcd3 100644
--- a/config/backup/backup.php
+++ b/config/backup/backup.php
@@ -32,7 +32,6 @@ require("/usr/local/pkg/backup.inc");
$a_backup = &$config['installedpackages']['backup']['config'];
-
if ($_GET['act'] == "del") {
if ($_GET['type'] == 'backup') {
if ($a_backup[$_GET['id']]) {
@@ -58,13 +57,13 @@ if ($_GET['a'] == "download") {
if (count($a_backup) > 0) {
$backup_cmd = 'tar --create --verbose --gzip --file '.$tmp.$filename.' --directory / ';
foreach ($a_backup as $ent) {
- if ($ent['enabled'] =="true"){
+ if ($ent['enabled'] == "true") {
//htmlspecialchars($ent['name']);
//htmlspecialchars($ent['path']);
//htmlspecialchars($ent['description']);
$backup_cmd .= htmlspecialchars($ent['path']).' ';
}
- $i++;
+ $i++;
}
//echo $backup_cmd; //exit;
system($backup_cmd);
@@ -74,7 +73,7 @@ if ($_GET['a'] == "download") {
$fd = fopen($tmp.$filename, "rb");
header("Content-Type: binary/octet-stream");
header("Content-Length: " . filesize($tmp.$filename));
- header('Content-Disposition: attachment; filename="'.$filename.'"');
+ header('Content-Disposition: attachment; filename="' . $filename . '"');
fpassthru($fd);
conf_mount_ro();
@@ -90,13 +89,12 @@ if ($_GET['a'] == "other") {
//extract the tgz file
if (file_exists('/root/backup/'.$filename)) {
- //echo "The file $filename exists";
- system('cd /; tar xvpfz /root/backup/'.$filename.' ');
- header( 'Location: backup.php?savemsg=Backup+has+been+restored.' ) ;
- }
- else {
+ //echo "The file $filename exists";
+ system('cd /; tar xvpfz /root/backup/'.$filename.' ');
+ header( 'Location: backup.php?savemsg=Backup+has+been+restored.' ) ;
+ } else {
header( 'Location: backup.php?savemsg=Restore+failed.+Backup+file+not+found.' ) ;
- }
+ }
conf_mount_ro();
exit;
}
@@ -111,7 +109,6 @@ if (($_POST['submit'] == "Upload") && is_uploaded_file($_FILES['ulfile']['tmp_na
conf_mount_ro();
}
-
include("head.inc");
?>
@@ -210,91 +207,85 @@ echo " <form action='backup.php' method='post' name='iform' id='iform'>\n";
if ($config_change == 1) {
write_config();
- $config_change = 0;
+ $config_change = 0;
}
-//if ($savemsg) print_info_box($savemsg);
+//if ($savemsg) print_info_box($savemsg);
//if (file_exists($d_hostsdirty_path)): echo"<p>";
//print_info_box_np("This is an info box.");
//echo"<br />";
-//endif;
+//endif;
?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="30%" class="listhdrr">Name</td>
<td width="20%" class="listhdrr">Enabled</td>
<td width="40%" class="listhdr">Description</td>
<td width="10%" class="list">
-
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td width="17"></td>
- <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
-
+ <table border="0" cellspacing="0" cellpadding="1">
+ <tr>
+ <td width="17"></td>
+ <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ </table>
</td>
</tr>
+ <?php
- <?php
-
$i = 0;
if (count($a_backup) > 0) {
foreach ($a_backup as $ent) {
?>
- <tr>
- <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
- <?=$ent['name'];?>&nbsp;
- </td>
- <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
- <?=$ent['enabled'];?>&nbsp;
- </td>
- <td class="listbg" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
- <font color="#FFFFFF"><?=htmlspecialchars($ent['description']);?>&nbsp;
- </td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <tr>
+ <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
+ <?=$ent['name'];?>&nbsp;
+ </td>
+ <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
+ <?=$ent['enabled'];?>&nbsp;
+ </td>
+ <td class="listbg" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
+ <font color="#FFFFFF"><?=htmlspecialchars($ent['description']);?>&nbsp;
+ </td>
+ <td valign="middle" nowrap class="list">
+ <table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td valign="middle"><a href="backup_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a></td>
- <td><a href="backup_edit.php?type=backup&act=del&id=<?=$i;?>" onclick="return confirm('Do you really want to delete this?')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
+ <td valign="middle"><a href="backup_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="backup_edit.php?type=backup&act=del&id=<?=$i;?>" onclick="return confirm('Do you really want to delete this?')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
</tr>
- </table>
- </td>
- </tr>
- <?php
-
- $i++;
+ </table>
+ </td>
+ </tr>
+ <?php
+ $i++;
}
}
?>
<tr>
- <td class="list" colspan="3"></td>
- <td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td width="17"></td>
- <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </td>
+ <td class="list" colspan="3"></td>
+ <td class="list">
+ <table border="0" cellspacing="0" cellpadding="1">
+ <tr>
+ <td width="17"></td>
+ <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ </table>
+ </td>
</tr>
-
<tr>
- <td class="list" colspan="3"></td>
- <td class="list"></td>
+ <td class="list" colspan="3"></td>
+ <td class="list"></td>
</tr>
- </table>
+</table>
</form>
-
<br>
<br>
<br>
@@ -310,7 +301,6 @@ if ($config_change == 1) {
</div>
-
<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/config/backup/backup.xml b/config/backup/backup.xml
index ae1adf52..f9cf36b9 100644
--- a/config/backup/backup.xml
+++ b/config/backup/backup.xml
@@ -2,46 +2,46 @@
<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd">
<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
<packagegui>
- <copyright>
- <![CDATA[
+ <copyright>
+ <![CDATA[
/* $Id$ */
/* ========================================================================== */
/*
- backup.xml
- Copyright (C) 2008 Mark J Crane
- All rights reserved.
- */
+ backup.xml
+ Copyright (C) 2008 Mark J Crane
+ All rights reserved.
+*/
/* ========================================================================== */
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
+ 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.
+ 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.
+ 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.
- */
+ 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.
+*/
/* ========================================================================== */
- ]]>
- </copyright>
- <description>Backup</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ ]]>
+ </copyright>
+ <description>Backup</description>
+ <requirements>Describe your package requirements here</requirements>
+ <faq>Currently there are no FAQ items provided.</faq>
<name>Backup Settings</name>
- <version>0.1.6</version>
+ <version>0.1.8</version>
<title>Settings</title>
<include_file>/usr/local/pkg/backup.inc</include_file>
<menu>
diff --git a/config/backup/backup_edit.php b/config/backup/backup_edit.php
index c7dbc38a..fbaa9096 100755
--- a/config/backup/backup_edit.php
+++ b/config/backup/backup_edit.php
@@ -1,4 +1,4 @@
-<?php
+<?php
/* $Id$ */
/*
@@ -66,7 +66,7 @@ if ($_POST) {
unset($input_errors);
$pconfig = $_POST;
-
+
if (!$input_errors) {
$ent = array();
@@ -76,11 +76,10 @@ if ($_POST) {
$ent['description'] = $_POST['description'];
if (isset($id) && $a_backup[$id]) {
- //update
- $a_backup[$id] = $ent;
- }
- else {
- //add
+ //update
+ $a_backup[$id] = $ent;
+ } else {
+ //add
$a_backup[] = $ent;
}
@@ -99,7 +98,7 @@ include("head.inc");
<script type="text/javascript" language="JavaScript">
function show_advanced_config() {
- document.getElementById("showadvancedbox").innerHTML='';
+ document.getElementById("showadvancedbox").innerHTML = '';
aodiv = document.getElementById('showadvanced');
aodiv.style.display = "block";
</script>
@@ -124,87 +123,87 @@ function show_advanced_config() {
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
- <td class="tabcont" >
-
- <!--
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td><p><span class="vexpl"><span class="red"><strong>PHP<br>
- </strong></span>
- </p></td>
- </tr>
- </table>
- -->
- <br />
-
- <form action="backup_edit.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <td class="tabcont" >
- <tr>
- <td width="25%" valign="top" class="vncellreq">Name</td>
- <td width="75%" class="vtable">
- <input name="name" type="text" class="formfld" id="name" size="40" value="<?=htmlspecialchars($pconfig['name']);?>">
- </td>
- </tr>
-
- <tr>
- <td width="22%" valign="top" class="vncellreq">Path</td>
- <td width="78%" class="vtable">
- <input name="path" type="text" class="formfld" id="path" size="40" value="<?=htmlspecialchars($pconfig['path']);?>">
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq">Enabled</td>
- <td width="78%" class="vtable">
- <?php
- echo " <select name='enabled' class='formfld'>\n";
- echo " <option></option>\n";
- switch (htmlspecialchars($pconfig['enabled'])) {
- case "true":
- echo " <option value='true' selected='yes'>true</option>\n";
- echo " <option value='false'>false</option>\n";
- break;
- case "false":
- echo " <option value='true'>true</option>\n";
- echo " <option value='false' selected='yes'>false</option>\n";
-
- break;
- default:
- echo " <option value='true' selected='yes'>true</option>\n";
- echo " <option value='false'>false</option>\n";
- }
- echo " </select>\n";
- ?>
- </td>
- </tr>
- <tr>
- <td width="25%" valign="top" class="vncellreq">Description</td>
- <td width="75%" class="vtable">
- <input name="description" type="text" class="formfld" id="description" size="40" value="<?=htmlspecialchars($pconfig['description']);?>">
- <br><span class="vexpl">Enter the description here.<br></span>
- </td>
- </tr>
-
- <tr>
- <td valign="top">&nbsp;</td>
- <td>
- <input name="Submit" type="submit" class="formbtn" value="Save"> <input class="formbtn" type="button" value="Cancel" onclick="history.back()">
- <?php if (isset($id) && $a_backup[$id]): ?>
- <input name="id" type="hidden" value="<?=$id;?>">
- <?php endif; ?>
- </td>
- </tr>
+ <!--
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td><p><span class="vexpl"><span class="red"><strong>PHP<br>
+ </strong></span>
+ </p></td>
+ </tr>
</table>
- </form>
-
- <br>
- <br>
- <br>
- <br>
- <br>
- <br>
-
- </td>
+ -->
+ <br />
+
+ <form action="backup_edit.php" method="post" name="iform" id="iform">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+
+ <tr>
+ <td width="25%" valign="top" class="vncellreq">Name</td>
+ <td width="75%" class="vtable">
+ <input name="name" type="text" class="formfld" id="name" size="40" value="<?=htmlspecialchars($pconfig['name']);?>">
+ </td>
+ </tr>
+
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">Path</td>
+ <td width="78%" class="vtable">
+ <input name="path" type="text" class="formfld" id="path" size="40" value="<?=htmlspecialchars($pconfig['path']);?>">
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">Enabled</td>
+ <td width="78%" class="vtable">
+ <?php
+ echo " <select name='enabled' class='formfld'>\n";
+ echo " <option></option>\n";
+ switch (htmlspecialchars($pconfig['enabled'])) {
+ case "true":
+ echo " <option value='true' selected='yes'>true</option>\n";
+ echo " <option value='false'>false</option>\n";
+ break;
+ case "false":
+ echo " <option value='true'>true</option>\n";
+ echo " <option value='false' selected='yes'>false</option>\n";
+
+ break;
+ default:
+ echo " <option value='true' selected='yes'>true</option>\n";
+ echo " <option value='false'>false</option>\n";
+ }
+ echo " </select>\n";
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" class="vncellreq">Description</td>
+ <td width="75%" class="vtable">
+ <input name="description" type="text" class="formfld" id="description" size="40" value="<?=htmlspecialchars($pconfig['description']);?>">
+ <br><span class="vexpl">Enter the description here.<br></span>
+ </td>
+ </tr>
+
+ <tr>
+ <td valign="top">&nbsp;</td>
+ <td>
+ <input name="Submit" type="submit" class="formbtn" value="Save"> <input class="formbtn" type="button" value="Cancel" onclick="history.back()">
+ <?php if (isset($id) && $a_backup[$id]): ?>
+ <input name="id" type="hidden" value="<?=$id;?>">
+ <?php endif; ?>
+ </td>
+ </tr>
+ </table>
+ </form>
+
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+
+ </td>
</tr>
</table>
diff --git a/config/blinkled/binaries/blinkled b/config/blinkled/binaries/blinkled
deleted file mode 100644
index 2a8681a5..00000000
--- a/config/blinkled/binaries/blinkled
+++ /dev/null
Binary files differ
diff --git a/config/blinkled/blinkled.inc b/config/blinkled/blinkled.inc
deleted file mode 100644
index ef2b6db8..00000000
--- a/config/blinkled/blinkled.inc
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- blinkled.inc
- part of pfSense (https://www.pfSense.org/)
- Copyright (C) 2009 Jim Pingle
- Copyright (C) 2015 ESF, LLC
- 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("functions.inc");
-
-function sync_package_blinkled() {
- global $config;
- $blinkled_config = $config['installedpackages']['blinkled']['config'][0];
- /* Kill all instances of blinkled */
- if (is_process_running("blinkled")) {
- mwexec("/usr/bin/killall -9 blinkled");
- }
- /* If blinkled is not running, start it */
- if (!is_process_running("blinkled")) {
- blinkled_start();
- }
-}
-
-function blinkled_launch($int, $led) {
- mwexec("/usr/local/bin/blinkled -i " . escapeshellarg($int) . " -l /dev/led/led" . escapeshellarg($led));
-}
-
-function blinkled_start() {
- global $config;
- $blinkled_config = $config['installedpackages']['blinkled']['config'][0];
- if (!($blinkled_config['enable'])) {
- return;
- }
-
- if (($blinkled_config['enable_led2']) && ($blinkled_config['iface_led2'])) {
- blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led2']), 2);
- }
- if (($blinkled_config['enable_led3']) && ($blinkled_config['iface_led3'])) {
- blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led3']), 3);
- }
-}
-
-function validate_form_blinkled($post, &$input_errors) {
- /* Make sure both aren't using the same interface */
- if (($post['iface_led2']) && ($post['iface_led3']) &&
- (($post['enable_led2']) && ($post['enable_led3'])) &&
- ($post['iface_led2'] == $post['iface_led3'])) {
- $input_errors[] = 'You cannot set two LEDs for a single interface. Please choose seperate interfaces.';
- }
-}
-
-?>
diff --git a/config/blinkled/blinkled.xml b/config/blinkled/blinkled.xml
deleted file mode 100644
index 65a574af..00000000
--- a/config/blinkled/blinkled.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
-<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
-<packagegui>
- <copyright>
- <![CDATA[
-/* $Id$ */
-/* ====================================================================================== */
-/*
- blinkled.xml
- part of pfSense (https://www.pfSense.org/)
- Copyright (C) 2009-2012 Jim Pingle
- Copyright (C) 2015 ESF, LLC
- 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.
-*/
-/* ====================================================================================== */
- ]]>
- </copyright>
- <title>Interfaces: Assign LEDs</title>
- <name>blinkled</name>
- <version>0.4.4</version>
- <savetext>Save</savetext>
- <include_file>/usr/local/pkg/blinkled.inc</include_file>
- <menu>
- <name>Assign LEDs</name>
- <tooltiptext>Assign LEDs to indicate network activity.</tooltiptext>
- <section>Interfaces</section>
- <url>/pkg_edit.php?xml=blinkled.xml</url>
- </menu>
- <additional_files_needed>
- <item>https://packages.pfsense.org/packages/config/blinkled/blinkled.inc</item>
- <prefix>/usr/local/pkg/</prefix>
- </additional_files_needed>
- <!-- TODO: Make the blinkled.sh script really usable for start/stop/restart -->
- <service>
- <name>blinkled</name>
- <rcfile>blinkled.sh</rcfile>
- <executable>blinkled</executable>
- <description>Network Activity LED Indicator Daemon</description>
- </service>
- <fields>
- <field>
- <fielddescr>Enable blinkled</fielddescr>
- <fieldname>enable</fieldname>
- <type>checkbox</type>
- <enablefields>enable_led2,enable_led3,iface_led2,iface_led3</enablefields>
- <description>if this is enabled, it will use LED #2 and #3 to
- indicate network activity. Be aware, however, that this will
- possibly consume some system resources in the process.</description>
- </field>
- <field>
- <fielddescr>Enable LED #2</fielddescr>
- <fieldname>enable_led2</fieldname>
- <type>checkbox</type>
- </field>
- <field>
- <fielddescr>Interface For LED #2</fielddescr>
- <fieldname>iface_led2</fieldname>
- <type>interfaces_selection</type>
- <description>Pick an interface to blink for activity on LED #2</description>
- </field>
- <field>
- <fielddescr>Enable LED #3</fielddescr>
- <fieldname>enable_led3</fieldname>
- <type>checkbox</type>
- </field>
- <field>
- <fielddescr>Interface For LED #3</fielddescr>
- <fieldname>iface_led3</fieldname>
- <type>interfaces_selection</type>
- <description>Pick an interface to blink for activity on LED #3</description>
- </field>
- </fields>
- <custom_php_validation_command>
- validate_form_blinkled($_POST, $input_errors);
- </custom_php_validation_command>
- <custom_php_resync_config_command>
- sync_package_blinkled();
- </custom_php_resync_config_command>
-</packagegui>
diff --git a/config/blinkled8/blinkled.inc b/config/blinkled8/blinkled.inc
index 6d0da039..6e76c157 100644
--- a/config/blinkled8/blinkled.inc
+++ b/config/blinkled8/blinkled.inc
@@ -1,4 +1,33 @@
<?php
+/*
+ blinkled.inc
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
+ 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("functions.inc");
function blinkled_rcfile() {
@@ -28,53 +57,42 @@ EOD;
conf_mount_ro();
}
-function blinkled_running () {
- return ((int)exec('pgrep blinkled | wc -l') > 0);
-}
function sync_package_blinkled() {
global $config;
+
+ blinkled_rcfile();
+
$blinkled_config = $config['installedpackages']['blinkled']['config'][0];
- /* kill all instances of blinkled */
- if(blinkled_running()) {
- blinkled_stop();
+ /* If the service (being) disabled, stop it (if running) and do nothing else */
+ if (!($blinkled_config['enable'])) {
+ if (is_process_running("blinkled")) {
+ stop_service("blinkled");
+ }
+ return;
}
- /* if blinkled not running start it */
- if(!blinkled_running()) {
- blinkled_start();
+ /* Kill all instances of blinkled */
+ if (is_process_running("blinkled")) {
+ stop_service("blinkled");
}
- blinkled_rcfile();
+ start_service("blinkled");
}
function blinkled_launch($int, $led, $return = false) {
$cmd = "/usr/local/bin/blinkled -i " . escapeshellarg($int) . " -l " . escapeshellarg("/dev/led/led{$led}");
- if ($return)
+ if ($return) {
return $cmd;
- else
+ } else {
mwexec($cmd);
-}
-
-function blinkled_start() {
- global $config;
- $blinkled_config = $config['installedpackages']['blinkled']['config'][0];
- if (!($blinkled_config['enable']))
- return;
-
- if (($blinkled_config['enable_led2']) && ($blinkled_config['iface_led2']))
- blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led2']), 2);
- if (($blinkled_config['enable_led3']) && ($blinkled_config['iface_led3']))
- blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led3']), 3);
-}
-
-function blinkled_stop() {
- mwexec("/usr/bin/killall -9 blinkled");
+ }
}
function validate_form_blinkled($post, &$input_errors) {
/* Make sure both aren't using the same interface */
- if (($post['iface_led2']) && ($post['iface_led3']) &&
+ if (($post['iface_led2']) && ($post['iface_led3']) &&
(($post['enable_led2']) && ($post['enable_led3'])) &&
- ($post['iface_led2'] == $post['iface_led3']))
+ ($post['iface_led2'] == $post['iface_led3'])) {
$input_errors[] = 'You cannot set two LEDs for a single interface. Please choose seperate interfaces.';
+ }
}
?>
diff --git a/config/blinkled8/blinkled.xml b/config/blinkled8/blinkled.xml
index ec70f392..2502f3ff 100644
--- a/config/blinkled8/blinkled.xml
+++ b/config/blinkled8/blinkled.xml
@@ -1,8 +1,49 @@
<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ====================================================================================== */
+/*
+ blinkled.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009-2012 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<title>Interfaces: Assign LEDs</title>
<name>blinkled</name>
- <version>0.4.1</version>
+ <version>0.4.5</version>
<savetext>Save</savetext>
<include_file>/usr/local/pkg/blinkled.inc</include_file>
<menu>
@@ -14,13 +55,12 @@
<additional_files_needed>
<item>https://packages.pfsense.org/packages/config/blinkled8/blinkled.inc</item>
<prefix>/usr/local/pkg/</prefix>
- <chmod>0755</chmod>
</additional_files_needed>
<service>
<name>blinkled</name>
<rcfile>blinkled.sh</rcfile>
<executable>blinkled</executable>
- <description>Blinks LEDs to indicate network activity</description>
+ <description>Network Activity LED Indicator Daemon</description>
</service>
<fields>
<field>
@@ -28,7 +68,7 @@
<fieldname>enable</fieldname>
<type>checkbox</type>
<enablefields>enable_led2,enable_led3,iface_led2,iface_led3</enablefields>
- <description>if this is enabled, it will use LED #2 and #3 to
+ <description>If this is enabled, it will use LED #2 and #3 to
indicate network activity. Be aware, however, that this will
possibly consume some system resources in the process.</description>
</field>
@@ -41,7 +81,7 @@
<fielddescr>Interface For LED #2</fielddescr>
<fieldname>iface_led2</fieldname>
<type>interfaces_selection</type>
- <description>Pick an interface to blink for activity on LED #2</description>
+ <description>Pick an interface to blink for activity on LED #2.</description>
</field>
<field>
<fielddescr>Enable LED #3</fielddescr>
@@ -52,7 +92,7 @@
<fielddescr>Interface For LED #3</fielddescr>
<fieldname>iface_led3</fieldname>
<type>interfaces_selection</type>
- <description>Pick an interface to blink for activity on LED #3</description>
+ <description>Pick an interface to blink for activity on LED #3.</description>
</field>
</fields>
<custom_php_validation_command>
diff --git a/config/darkstat/darkstat.sh b/config/darkstat/darkstat.sh
deleted file mode 100644
index a7706142..00000000
--- a/config/darkstat/darkstat.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-rc_start() {
- /usr/local/sbin/darkstat --detach
-}
-
-rc_stop() {
- killall darkstat
-}
-
-case $1 in
- start)
- rc_start
- ;;
- stop)
- rc_stop
- ;;
- restart)
- rc_stop
- rc_start
- ;;
-esac
diff --git a/config/darkstat/darkstat.xml b/config/darkstat/darkstat.xml
index 3263012b..d0b71cac 100644
--- a/config/darkstat/darkstat.xml
+++ b/config/darkstat/darkstat.xml
@@ -2,55 +2,50 @@
<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
- <copyright>
- <![CDATA[
+ <copyright>
+ <![CDATA[
/* $Id$ */
-/* ========================================================================== */
+/* ====================================================================================== */
/*
- authng.xml
- part of pfSense (http://www.pfSense.com)
- Copyright (C) 2007 to whom it may belong
- All rights reserved.
-
- Based on m0n0wall (http://m0n0.ch/wall)
- Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
- */
-/* ========================================================================== */
+ darkstat.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009-2015 ESF, LLC
+ All rights reserved.
+*/
+/* ====================================================================================== */
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
+ 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.
- 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.
- 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.
- */
-/* ========================================================================== */
- ]]>
- </copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>Darkstat</name>
- <version>3.0</version>
+ <version>3.1</version>
<title>Diagnostics: Darkstat</title>
<menu>
<name>Darkstat Settings</name>
- <tooltiptext>Setup darkstat specific settings</tooltiptext>
+ <tooltiptext>Setup darkstat specific settings.</tooltiptext>
<section>Diagnostics</section>
<url>/pkg_edit.php?xml=darkstat.xml&amp;id=0</url>
</menu>
@@ -60,6 +55,7 @@
<executable>darkstat</executable>
<description>Darkstat bandwidth monitoring daemon</description>
</service>
+ <configpath>installedpackages->package->$packagename->configuration->settings</configpath>
<tabs>
<tab>
<text>Darkstat Settings</text>
@@ -71,47 +67,348 @@
<url>http://$myurl:666</url>
</tab>
</tabs>
+ <advanced_options>enabled</advanced_options>
<fields>
<field>
- <fielddescr>Interface</fielddescr>
- <fieldname>interface_array</fieldname>
+ <fielddescr>Enable darkstat</fielddescr>
+ <fieldname>enable</fieldname>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Interface(s) to capture traffic on</fielddescr>
+ <fieldname>capture_interfaces</fieldname>
+ <description><![CDATA[
+ Capture traffic on the specified network interface(s).<br />
+ (Default is LAN.)
+ ]]>
+ </description>
<type>interfaces_selection</type>
+ <hideinterfaceregex>loopback</hideinterfaceregex>
<size>3</size>
+ <multiple>true</multiple>
<value>lan</value>
+ <required>true</required>
+ </field>
+ <field>
+ <fielddescr>Darkstat web interface should listen on</fielddescr>
+ <fieldname>bind_interfaces</fieldname>
+ <description>
+ <![CDATA[
+ Bind the web interface to IP address(es) of the specified interface(s).<br />
+ (The default is to listen on all interfaces.)
+ ]]>
+ </description>
+ <type>interfaces_selection</type>
+ <size>3</size>
<multiple>true</multiple>
</field>
- </fields>
+ <!-- Disabled until there is some way to handle the $myurl thing in the tabs/url tag above -->
+ <!--
+ <field>
+ <fielddescr>Port</fielddescr>
+ <fieldname>port</fieldname>
+ <description>
+ <![CDATA[
+ Bind the darkstat web interface to the specified port.<br />
+ <strong>WARNING: Do NOT set this to the same port where pfSense WebGUI is running (usually 80/443)!</strong><br />
+ (Default is 666.)
+ ]]>
+ </description>
+ <type>input</type>
+ <size>5</size>
+ </field>
+ -->
+ <field>
+ <fielddescr>Enable the "local network" feature</fielddescr>
+ <fieldname>localnetworkenable</fieldname>
+ <description>
+ <![CDATA[
+ All traffic entering or leaving this network will be graphed.<br />
+ (The default behaviour is to only graph traffic to and from the local host.)
+ ]]>
+ </description>
+ <type>checkbox</type>
+ <enablefields>localnetworkonly</enablefields>
+ <disablefields>localnetworkonly</disablefields>
+ </field>
+ <field>
+ <fielddescr>Make the web interface ONLY display hosts on the "local network"</fielddescr>
+ <fieldname>localnetworkonly</fieldname>
+ <description>
+ <![CDATA[
+ If the "local network" feature is enabled above, the web interface<br />
+ will only display hosts on the "local network" defined below.
+ ]]>
+ </description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Define a "local network"</fielddescr>
+ <fieldname>localnetwork</fieldname>
+ <description>Traffic from/to the network/netmask of the selected interface will be considered as "local network".</description>
+ <type>interfaces_selection</type>
+ <hideinterfaceregex>(wan|loopback)</hideinterfaceregex>
+ </field>
+ <field>
+ <fielddescr>Do not use promiscuous mode to capture</fielddescr>
+ <fieldname>nopromisc</fieldname>
+ <description>
+ <![CDATA[
+ Note that an interface may already be in promiscuous mode,<br />
+ or may later enter promiscuous mode, due to circumstances beyond darkstat's control.<br />
+ <strong>This cannot be used when the "local network" feature is enabled above.</strong>
+ ]]>
+ </description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Do not resolve IPs to host names</fielddescr>
+ <fieldname>nodns</fieldname>
+ <description>
+ <![CDATA[
+ This can significantly reduce memory footprint on small systems,<br />
+ as an extra process is created for DNS resolution.
+ ]]>
+ </description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Do not display MAC addresses in the hosts table</fielddescr>
+ <fieldname>nomacs</fieldname>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Do not display the last seen time in the hosts table</fielddescr>
+ <fieldname>nolastseen</fieldname>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Maximum hosts count</fielddescr>
+ <fieldname>hostsmax</fieldname>
+ <description>
+ <![CDATA[
+ The maximum number of hosts that will be kept in the hosts table.<br />
+ This is used to limit how much accounting data will be kept in memory.<br />
+ (If filled in, the number must be greater than 'Maximum number of hosts to keep' below.)
+ ]]>
+ </description>
+ <type>input</type>
+ <size>5</size>
+ </field>
+ <field>
+ <fielddescr>Maximum number of hosts to keep</fielddescr>
+ <fieldname>hostskeep</fieldname>
+ <description>
+ <![CDATA[
+ When the hosts table hits 'Maximum hosts count' and traffic is seen from a new host,<br />
+ we clean out the hosts table, keeping only the top number of hosts, sorted by total traffic.<br />
+ (If filled in, the number must be lower than 'Maximum hosts count' above.)
+ ]]>
+ </description>
+ <type>input</type>
+ <size>5</size>
+ </field>
+ <field>
+ <fielddescr>Maximum ports count</fielddescr>
+ <fieldname>portsmax</fieldname>
+ <description>
+ <![CDATA[
+ The maximum number of ports that will be tracked for each host.<br />
+ This is used to limit how much accounting data will be kept in memory.<br />
+ (If filled in, the number must be greater than 'Maximum number of ports to keep' below.)
+ ]]>
+ </description>
+ <type>input</type>
+ <size>5</size>
+ </field>
+ <field>
+ <fielddescr>Maximum number of ports to keep</fielddescr>
+ <fieldname>portskeep</fieldname>
+ <description>
+ <![CDATA[
+ When a ports table fills up, this many ports are kept and the rest are discarded.<br />
+ (If filled in, the number must be lower than 'Maximum ports count' above.)
+ ]]>
+ </description>
+ <type>input</type>
+ <size>5</size>
+ </field>
+ <field>
+ <fielddescr>Advanced traffic filtering options</fielddescr>
+ <fieldname>advfilter</fieldname>
+ <description>
+ <![CDATA[
+ Use the specified filter expression when capturing traffic.<br /><br />
+ Example 1: We only want to account for SSH traffic.<br />
+ Filter expression: <em>port 22</em><br /><br />
+ Example 2: We don't want to account for traffic between internal IPs.<br />
+ Filter expression: <em>not (src net 192.168.0 and dst net 192.168.0)</em><br /><br />
+ NOTE: Filter syntax is beyond the scope of this description; please refer to
+ <a href="https://www.freebsd.org/cgi/man.cgi?query=tcpdump&amp;sektion=1&amp;apropos=0&amp;manpath=FreeBSD+10.1-RELEASE+and+Ports">tcpdump(1)</a>,
+ <a href="https://www.freebsd.org/cgi/man.cgi?query=pcap-filter&amp;sektion=7&amp;apropos=0&amp;manpath=FreeBSD+10.1-RELEASE+and+Ports">pcap-filter(7)</a>
+ and <a href="https://www.freebsd.org/cgi/man.cgi?query=darkstat&apropos=0&sektion=0&manpath=FreeBSD+10.1-RELEASE+and+Ports&arch=default&format=html">darkstat(8)</a>
+ documentation.<br />
+ <strong>WARNING: You are completely on your own with this! If misconfigured, darkstat will malfunction or even not start at all.</strong>
+ ]]>
+ </description>
+ <type>textarea</type>
+ <encoding>base64</encoding>
+ <cols>65</cols>
+ <rows>5</rows>
+ <advancedfield/>
+ </field>
+ </fields>
<custom_php_global_functions>
+ <![CDATA[
function sync_package_darkstat() {
- if (!is_array($_POST['interface_array']))
- return;
conf_mount_rw();
- $first = 0;
- foreach($_POST['interface_array'] as $iface) {
+ config_lock();
+ global $config, $darkstat_config;
+ $darkstat_config =& $config['installedpackages']['darkstat']['config'][0];
+
+ /* Configure capture interface(s) */
+ $capture_interfaces = $darkstat_config['capture_interfaces'] ?: 'lan';
+ foreach (explode(",", $capture_interfaces) as $iface) {
+ $if = convert_friendly_interface_to_real_interface_name($iface);
+ if ($if) {
+ $ifaces_final .= " -i {$if}";
+ }
+ }
+ $start = "/usr/local/sbin/darkstat {$ifaces_final}";
+
+ /* Configure bind interface(s) */
+ foreach (explode(",", $darkstat_config['bind_interfaces']) as $iface) {
$if = convert_friendly_interface_to_real_interface_name($iface);
- if($if) {
- $ifaces_final .= " -i " . $if;
- $first = 1;
+ $if = get_interface_ip("$iface");
+ if ($if) {
+ $bind_ifaces_final .= " -b {$if}";
+ }
+ }
+ $start .= "{$bind_ifaces_final}";
+
+ /* Configure darkstat webgui port
+ NOTE: This will be always be 666 for now, until the 'Port' field is re-enabled in darkstat.xml
+ */
+ $port = $darkstat_config['port'] ?: '666';
+ $start .= " -p {$port}";
+
+ /* Deal with the rest of configured options here */
+ $localnetworkenable = $darkstat_config['localnetworkenable'];
+ $lif = $darkstat_config['localnetwork'];
+ if ($localnetworkenable != "") {
+ if (is_ipaddrv4(get_interface_ip($lif))) {
+ $start .= " -l " . escapeshellarg(gen_subnet(get_interface_ip($lif), get_interface_subnet($lif)) . '/' . gen_subnet_mask(get_interface_subnet($lif)));
+ }
+ if ($darkstat_config['localnetworkonly'] != "") {
+ $start .= " --local-only";
}
}
- $start = "/usr/local/sbin/darkstat" . $ifaces_final . " -p 666 ";
+ if (($localnetworkenable == "") && ($darkstat_config['nopromisc'] != "")) {
+ $start .= " --no-promisc";
+ }
+ if ($darkstat_config['nodns'] != "") {
+ $start .= " --no-dns";
+ }
+ if ($darkstat_config['nomacs'] != "") {
+ $start .= " --no-macs";
+ }
+ if ($darkstat_config['nolastseen'] != "") {
+ $start .= " --no-lastseen";
+ }
+ $hostsmax = $darkstat_config['hostsmax'];
+ $hostskeep = $darkstat_config['hostskeep'];
+ if (($hostsmax > 0) && ($hostsmax > $hostskeep)) {
+ $start .= " --hosts-max {$hostsmax}";
+ }
+ if (($hostskeep > 0) && ($hostskeep < $hostsmax)) {
+ $start .= " --hosts-keep {$hostskeep}";
+ }
+ $portsmax = $darkstat_config['portsmax'];
+ $portskeep = $darkstat_config['portskeep'];
+ if (($portsmax > 0) && ($portsmax > $portskeep)) {
+ $start .= " --ports-max {$portsmax}";
+ }
+ if (($portskeep > 0) && ($portskeep < $portsmax)) {
+ $start .= " --ports-keep {$portskeep}";
+ }
+ $advfilter = $darkstat_config['advfilter'];
+ if ($advfilter != "") {
+ $start .= " -f " . escapeshellarg(base64_decode($advfilter));
+ }
+
write_rcfile(array(
"file" => "darkstat.sh",
"start" => $start,
"stop" => "/usr/bin/killall darkstat"
)
);
- start_service("darkstat");
+
+ /* If the service is (being) disabled, stop it (if running) and do nothing else */
+ if (!($darkstat_config['enable'])) {
+ if (is_process_running("darkstat")) {
+ stop_service("darkstat");
+ }
+ return;
+ } else {
+ restart_service("darkstat");
+ }
+
+ config_unlock();
conf_mount_ro();
}
+
+ function validate_input_darkstat($post, &$input_errors) {
+ if (($_POST['port']) && ($_POST['port'] < 1 || $_POST['port'] < 65535 || !is_numericint($_POST['port']))) {
+ $input_errors[] .= gettext("The value for 'Maximum number of ports' to keep' must be a positive integer between 1 and 65535.");
+ }
+ if (($_POST['hostsmax']) && ($_POST['hostsmax'] < 1 || !is_numericint($_POST['hostsmax']))) {
+ $input_errors[] = gettext("The value for 'Maximum hosts count' must be a positive integer.");
+ }
+ if (($_POST['hostskeep']) && ($_POST['hostskeep'] < 1 || !is_numericint($_POST['hostskeep']))) {
+ $input_errors[] .= gettext("The value for 'Maximum number of hosts to keep' must be a positive integer.");
+ }
+ if ($_POST['hostsmax'] || $_POST['hostskeep']) {
+ if ($_POST['hostsmax'] <= $_POST['hostskeep']) {
+ $input_errors[] .= gettext("'Maximum hosts count' must be greater than 'Maximum number of hosts to keep'.");
+ }
+ }
+ if (($_POST['portsmax']) && ($_POST['portsmax'] < 1 || !is_numericint($_POST['portsmax']))) {
+ $input_errors[] .= gettext("The value for 'Maximum ports count' must be a positive integer.");
+ }
+ if (($_POST['portskeep']) && ($_POST['portskeep'] < 1 || !is_numericint($_POST['portskeep']))) {
+ $input_errors[] .= gettext("The value for 'Maximum number of ports' to keep' must be a positive integer.");
+ }
+ if ($_POST['portsmax'] || $_POST['portskeep']) {
+ if ($_POST['portsmax'] <= $_POST['portskeep']) {
+ $input_errors[] .= gettext("'Maximum ports count' must be greater than 'Maximum number of ports to keep'.");
+ }
+ }
+ if ($_POST['localnetworkenable'] && $_POST['nopromisc'] != "") {
+ $input_errors[] .= gettext("'Do not use promiscuous mode to capture' cannot be used when the 'local network' feature is enabled.");
+ }
+ if ($_POST['localnetwork']) {
+ $int = convert_friendly_interface_to_real_interface_name($post['localnetwork']);
+ $ip = find_interface_ip($int);
+ if (!is_ipaddrv4($ip)) {
+ $input_errors[] .= gettext("The selected 'local network' interface has no IPv4 configured. Configured IPv4 is required.");
+ }
+ }
+ if (($post['advfilter']) && !preg_match("/^[a-zA-Z0-9\+\-\=\(\):. ]*$/", $post['advfilter'])) {
+ $input_errors[] .= gettext('Advanced traffic filtering options may only contain characters matching ^[a-zA-Z0-9\+\-\=\(\):. ]*$ regexp.');
+ }
+ }
+ ]]>
</custom_php_global_functions>
- <custom_add_php_command>
- sync_package_darkstat();
+ <custom_add_php_command>
+ sync_package_darkstat();
</custom_add_php_command>
<custom_php_resync_config_command>
sync_package_darkstat();
</custom_php_resync_config_command>
<custom_php_deinstall_command>
- exec("rm -f /usr/local/etc/rc.d/darkstat.sh");
+ unlink_if_exists("/usr/local/etc/rc.d/darkstat.sh");
</custom_php_deinstall_command>
+ <custom_php_validation_command>
+ validate_input_darkstat($_POST, $input_errors);
+ </custom_php_validation_command>
</packagegui>
diff --git a/config/filer/filer.inc b/config/filer/filer.inc
index 3a012dd2..7b795acb 100644
--- a/config/filer/filer.inc
+++ b/config/filer/filer.inc
@@ -44,7 +44,7 @@ function sync_package_filer() {
if ($config['installedpackages']['filer']['config'] != "") {
$count = 0;
foreach ($config['installedpackages']['filer']['config'] as $file) {
- if ($file['filedata']=="" && file_exists($file['fullfile'])) {
+ if ($file['filedata'] == "" && file_exists($file['fullfile'])) {
$config['installedpackages']['filer']['config'][$count]['filedata'] = base64_encode(file_get_contents($file['fullfile']));
$file['filedata'] = base64_encode(file_get_contents($file['fullfile']));
$update_conf++;
@@ -65,10 +65,10 @@ function sync_package_filer() {
switch ($file['background']) {
case "background":
mwexec_bg($file['cmd']);
- break;
+ break;
case "foreground":
mwexec($file['cmd']);
- break;
+ break;
}
}
}
@@ -90,13 +90,13 @@ function filer_validate_input($post, &$input_errors) {
continue;
}
if (substr($key, 0, 3) == "mod" && !preg_match("/^0?[0-7]{3}$/", $value)) {
- $input_errors[] = "{$value} is not valid permissions mode number.";
+ $input_errors[] = "{$value} is not valid permissions mode number.";
}
if (substr($key, 0, 11) == "description" && !preg_match("@^[a-zA-Z0-9 _/.-]+$@", $value)) {
- $input_errors[] = "Do not use special characters in description.";
+ $input_errors[] = "Do not use special characters in description.";
}
if (substr($key, 0, 8) == "fullfile" && !preg_match("@^[a-zA-Z0-9_/.-]+$@", $value)) {
- $input_errors[] = "Do not use special characters in filename.";
+ $input_errors[] = "Do not use special characters in filename.";
}
}
}
diff --git a/config/filer/filer.xml b/config/filer/filer.xml
index ab49bb21..57125927 100644
--- a/config/filer/filer.xml
+++ b/config/filer/filer.xml
@@ -44,7 +44,7 @@
]]>
</copyright>
<name>filer</name>
- <version>0.60.2</version>
+ <version>0.60.4</version>
<title>Filer</title>
<include_file>/usr/local/pkg/filer.inc</include_file>
<additional_files_needed>
@@ -84,14 +84,14 @@
<columnitem>
<fielddescr>Description</fielddescr>
<fieldname>description</fieldname>
- </columnitem>
+ </columnitem>
</adddeleteeditpagefields>
<fields>
<field>
<type>listtopic</type>
<fieldname>temp</fieldname>
<name>File configuration</name>
- </field>
+ </field>
<field>
<fielddescr>File</fielddescr>
<fieldname>fullfile</fieldname>
@@ -129,7 +129,7 @@
<type>listtopic</type>
<fieldname>temp</fieldname>
<name>Command to run after file save/sync.</name>
- </field>
+ </field>
<field>
<fielddescr>Script/Command</fielddescr>
<fieldname>cmd</fieldname>
@@ -142,7 +142,7 @@
<fielddescr>Execute mode</fielddescr>
<fieldname>background</fieldname>
<type>select</type>
- <options>
+ <options>
<option>
<name>Background (default)</name>
<value>background</value>
@@ -164,7 +164,7 @@
</custom_php_validation_command>
<custom_delete_php_command>
sync_package_filer();
- </custom_delete_php_command>
+ </custom_delete_php_command>
<custom_php_resync_config_command>
sync_package_filer();
</custom_php_resync_config_command>
diff --git a/config/iperf/iperf.xml b/config/iperf/iperf.xml
index 4312cf25..182d866b 100644
--- a/config/iperf/iperf.xml
+++ b/config/iperf/iperf.xml
@@ -1,52 +1,48 @@
<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd">
-<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
+<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
- <copyright>
- <![CDATA[
+ <copyright>
+ <![CDATA[
/* $Id$ */
-/* ========================================================================== */
+/* ====================================================================================== */
/*
- iperf.xml
- part of pfSense (http://www.pfSense.com)
- Copyright (C) 2007 to whom it may belong
- All rights reserved.
-
- Based on m0n0wall (http://m0n0.ch/wall)
- Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
- */
-/* ========================================================================== */
+ iperf.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2015 Renato Botelho
+ Copyright (C) 2015 ESF, LLC
+ All rights reserved.
+*/
+/* ====================================================================================== */
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
+ 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.
+ 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.
+ 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.
- */
-/* ========================================================================== */
- ]]>
- </copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>iperf</name>
- <version>1.7.0</version>
+ <version>2.0.5.2</version>
<title>iperf: Client</title>
<preoutput>yes</preoutput>
<donotsave>true</donotsave>
@@ -57,10 +53,10 @@
<configfile>iperf.xml</configfile>
</menu>
<service>
- <name>iperf</name>
- <executable>iperf</executable>
+ <name>iperf</name>
+ <executable>iperf</executable>
<description>iperf network performance testing daemon/client</description>
- </service>
+ </service>
<tabs>
<tab>
<text>Client</text>
@@ -85,13 +81,13 @@
<field>
<fielddescr>Port</fielddescr>
<fieldname>port</fieldname>
- <description>Enter the port that iperf will connect to. (default 5001)</description>
+ <description>Enter the port that iperf will connect to. (Default is 5001.)</description>
<type>input</type>
</field>
<field>
<fielddescr>Protocol</fielddescr>
<fieldname>protocol</fieldname>
- <description>Choose whether to use TCP or UDP here. (default is TCP)</description>
+ <description>Choose whether to use TCP or UDP here. (Default is TCP.)</description>
<type>select</type>
<options>
<option>
@@ -107,7 +103,7 @@
<field>
<fielddescr>Output format</fielddescr>
<fieldname>format</fieldname>
- <description>Choose to display output in bits/sec or bytes/sec. (default is bits)</description>
+ <description>Choose to display output in bits/sec or bytes/sec. (Default is bits.)</description>
<type>select</type>
<options>
<option>
@@ -123,13 +119,13 @@
<field>
<fielddescr>Interval</fielddescr>
<fieldname>interval</fieldname>
- <description>Enter the desired interval between bandwidth, jitter and loss reports here. (default is 0 for no periodic reports)</description>
+ <description>Enter the desired interval between bandwidth, jitter and loss reports here. (Default is 0 for no periodic reports.)</description>
<type>input</type>
</field>
<field>
<fielddescr>Buffer length</fielddescr>
<fieldname>length</fieldname>
- <description>Enter the length of buffers to read or write here. (default 8KB for TCP, 1470B for UDP)</description>
+ <description>Enter the length of buffers to read or write here. (Default 8KB for TCP, 1470B for UDP.)</description>
<type>input</type>
</field>
<field>
@@ -141,21 +137,37 @@
<field>
<fielddescr>UDP Bandwidth</fielddescr>
<fieldname>udpbandwidth</fieldname>
- <description>Enter the UDP bandwidth to send at in bits/sec. (default is 1Mbit/sec)</description>
+ <description>Enter the UDP bandwidth to send at in bits/sec. (Default is 1Mbit/sec.)</description>
<type>input</type>
</field>
</fields>
<custom_add_php_command>
- mwexec("killall iperf");
+ <![CDATA[
+ mwexec("/usr/bin/killall iperf");
$iperf_options = "";
- if($_POST['protocol'] == "udp") $iperf_options .= " -u";
- if($_POST['format'] == "bytes") $iperf_options .= " -f A";
- if($_POST['interval'] != "") $iperf_options .= " -i " . escapeshellarg($_POST['interval']);
- if($_POST['length'] != "") $iperf_options .= " -l " . escapeshellarg($_POST['length']);
- if($_POST['window'] != "") $iperf_options .= " -w " . escapeshellarg($_POST['window']);
- if($_POST['udpbandwidth'] != "") $iperf_options .= " -b " . escapeshellarg($_POST['udpbandwidth']);
- if($_POST['port'] != "") $iperf_options .= " -p " . escapeshellarg($_POST['port']);
+ if ($_POST['protocol'] == "udp") {
+ $iperf_options .= " -u";
+ }
+ if ($_POST['format'] == "bytes") {
+ $iperf_options .= " -f A";
+ }
+ if ($_POST['interval'] != "") {
+ $iperf_options .= " -i " . escapeshellarg($_POST['interval']);
+ }
+ if ($_POST['length'] != "") {
+ $iperf_options .= " -l " . escapeshellarg($_POST['length']);
+ }
+ if ($_POST['window'] != "") {
+ $iperf_options .= " -w " . escapeshellarg($_POST['window']);
+ }
+ if ($_POST['udpbandwidth'] != "") {
+ $iperf_options .= " -b " . escapeshellarg($_POST['udpbandwidth']);
+ }
+ if ($_POST['port'] != "") {
+ $iperf_options .= " -p " . escapeshellarg($_POST['port']);
+ }
$iperf_options .= " -c " . escapeshellarg($_POST['hostname']);
system("/usr/local/bin/iperf" . $iperf_options);
+ ]]>
</custom_add_php_command>
</packagegui>
diff --git a/config/iperf/iperfserver.xml b/config/iperf/iperfserver.xml
index f0dc074a..524e8366 100644
--- a/config/iperf/iperfserver.xml
+++ b/config/iperf/iperfserver.xml
@@ -2,51 +2,47 @@
<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd">
<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
<packagegui>
- <copyright>
- <![CDATA[
+ <copyright>
+ <![CDATA[
/* $Id$ */
-/* ========================================================================== */
+/* ====================================================================================== */
/*
- iperfserver.xml
- part of pfSense (http://www.pfSense.com)
- Copyright (C) 2007 to whom it may belong
- All rights reserved.
-
- Based on m0n0wall (http://m0n0.ch/wall)
- Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
- */
-/* ========================================================================== */
+ iperfserver.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2015 Renato Botelho
+ Copyright (C) 2015 ESF, LLC
+ All rights reserved.
+*/
+/* ====================================================================================== */
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
+ 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.
+ 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.
+ 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.
- */
-/* ========================================================================== */
- ]]>
- </copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>iperf</name>
- <version>1.7.0</version>
+ <version>2.0.5.2</version>
<title>iperf: Server</title>
<preoutput>yes</preoutput>
<donotsave>true</donotsave>
@@ -71,13 +67,13 @@
<field>
<fielddescr>Port</fielddescr>
<fieldname>port</fieldname>
- <description>Enter the port that iperf will listen for connections on. (default 5001)</description>
+ <description>Enter the port that iperf will listen for connections on. (Default is 5001.)</description>
<type>input</type>
</field>
<field>
<fielddescr>Protocol</fielddescr>
<fieldname>protocol</fieldname>
- <description>Choose whether to use TCP or UDP here. (default is TCP)</description>
+ <description>Choose whether to use TCP or UDP here. (Default is TCP.)</description>
<type>select</type>
<options>
<option>
@@ -93,7 +89,7 @@
<field>
<fielddescr>Output format</fielddescr>
<fieldname>format</fieldname>
- <description>Choose to display output in bits/sec or bytes/sec. (default is bits)</description>
+ <description>Choose to display output in bits/sec or bytes/sec. (Default is bits.)</description>
<type>select</type>
<options>
<option>
@@ -109,13 +105,13 @@
<field>
<fielddescr>Interval</fielddescr>
<fieldname>interval</fieldname>
- <description>Enter the desired interval between bandwidth, jitter and loss reports here. (default is 0 for no periodic reports)</description>
+ <description>Enter the desired interval between bandwidth, jitter and loss reports here. (Default is 0 for no periodic reports.)</description>
<type>input</type>
</field>
<field>
<fielddescr>Buffer length</fielddescr>
<fieldname>length</fieldname>
- <description>Enter the length of buffers to read or write here. (default 8KB for TCP, 1470B for UDP)</description>
+ <description>Enter the length of buffers to read or write here. (Default 8KB for TCP, 1470B for UDP.)</description>
<type>input</type>
</field>
<field>
@@ -126,16 +122,29 @@
</field>
</fields>
<custom_add_php_command>
- mwexec("killall iperf");
+ <![CDATA[
+ mwexec("/usr/bin/killall iperf");
$iperf_options = "";
- if($_POST['protocol'] == "udp") $iperf_options .= " -u";
- if($_POST['format'] == "bytes") $iperf_options .= " -f A";
- if($_POST['interval'] != "") $iperf_options .= " -i " . escapeshellarg($_POST['interval']);
- if($_POST['length'] != "") $iperf_options .= " -l " . escapeshellarg($_POST['length']);
- if($_POST['window'] != "") $iperf_options .= " -w " . escapeshellarg($_POST['window']);
- if($_POST['port'] != "") $iperf_options .= " -p " . escapeshellarg($_POST['port']);
+ if ($_POST['protocol'] == "udp") {
+ $iperf_options .= " -u";
+ }
+ if ($_POST['format'] == "bytes") {
+ $iperf_options .= " -f A";
+ }
+ if ($_POST['interval'] != "") {
+ $iperf_options .= " -i " . escapeshellarg($_POST['interval']);
+ }
+ if ($_POST['length'] != "") {
+ $iperf_options .= " -l " . escapeshellarg($_POST['length']);
+ }
+ if ($_POST['window'] != "") {
+ $iperf_options .= " -w " . escapeshellarg($_POST['window']);
+ }
+ if ($_POST['port'] != "") {
+ $iperf_options .= " -p " . escapeshellarg($_POST['port']);
+ }
$iperf_options .= " -s";
mwexec_bg("/usr/local/bin/iperf" . $iperf_options);
+ ]]>
</custom_add_php_command>
</packagegui>
-
diff --git a/config/lcdproc/lcdproc.inc b/config/lcdproc/lcdproc.inc
index d4b4856a..2251618c 100644
--- a/config/lcdproc/lcdproc.inc
+++ b/config/lcdproc/lcdproc.inc
@@ -39,7 +39,7 @@
} else {
define('LCDPROC_CONFIG','/usr/local/etc/LCDd.conf');
}
- define('LCDPROC_HOST','localhost');
+ define('LCDPROC_HOST','127.0.0.1');
define('LCDPROC_PORT','13666');
function lcdproc_notice ($msg) { syslog(LOG_NOTICE, "lcdproc: {$msg}"); }
diff --git a/config/notes/notes.inc b/config/notes/notes.inc
index f4bfe2cc..29b51396 100644
--- a/config/notes/notes.inc
+++ b/config/notes/notes.inc
@@ -3,10 +3,10 @@
/*
/* ========================================================================== */
/*
- notes.inc
- Copyright (C) 2008 Mark J Crane
- All rights reserved.
- */
+ notes.inc
+ Copyright (C) 2008 Mark J Crane
+ All rights reserved.
+*/
/* ========================================================================== */
/*
Redistribution and use in source and binary forms, with or without
@@ -31,61 +31,53 @@
POSSIBILITY OF SUCH DAMAGE.
*/
-function notes_sync_package()
-{
-
- //global $config;
+function notes_sync_package() {
+
+ //global $config;
}
-
-function notes_install_command()
-{
+
+function notes_install_command() {
global $config;
conf_mount_rw();
config_lock();
if (!is_dir('/usr/local/www/packages/')) {
- exec("mkdir /usr/local/www/packages/");
+ exec("mkdir /usr/local/www/packages/");
}
-
+
//if (!is_dir('/usr/local/www/packages/notes/')) {
// exec("mkdir /usr/local/www/packages/notes/");
//}
-
//rename PHP files from .tmp to .php
//exec("cp /tmp/notes.tmp /usr/local/www/packages/phpservice/notes.php");
//unlink_if_exists("/tmp/notes.tmp");
-
- //write_config();
+ //write_config();
-
//write_rcfile(array(
// "file" => "notes.sh",
// "start" => "/usr/local/bin/php /usr/local/pkg/notes.php",
// "stop" => "rm /tmp/phpmonitor.pid"
// )
//);
-
-
+
notes_sync_package();
-
- //if (pkg_is_service_running('notes')) {
+ //if (pkg_is_service_running('notes')) {
//documentation purposes
//}
conf_mount_ro();
config_unlock();
-
+
}
-function notes_deinstall_command()
-{
+function notes_deinstall_command() {
conf_mount_rw();
config_lock();
@@ -93,7 +85,7 @@ function notes_deinstall_command()
unlink_if_exists("/usr/local/pkg/notes.inc");
conf_mount_ro();
config_unlock();
-
+
}
?> \ No newline at end of file
diff --git a/config/notes/notes.xml b/config/notes/notes.xml
index 513bf922..34d2f676 100644
--- a/config/notes/notes.xml
+++ b/config/notes/notes.xml
@@ -2,46 +2,46 @@
<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd">
<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
<packagegui>
- <copyright>
- <![CDATA[
+ <copyright>
+ <![CDATA[
/* $Id$ */
/* ========================================================================== */
/*
- notes.xml
- Copyright (C) 2008 Mark J Crane
- All rights reserved.
- */
+ notes.xml
+ Copyright (C) 2008 Mark J Crane
+ All rights reserved.
+*/
/* ========================================================================== */
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
+ 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.
+ 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.
+ 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.
- */
+ 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.
+*/
/* ========================================================================== */
- ]]>
- </copyright>
- <description>Notes</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ ]]>
+ </copyright>
+ <description>Notes</description>
+ <requirements>Describe your package requirements here</requirements>
+ <faq>Currently there are no FAQ items provided.</faq>
<name>Notes</name>
- <version>0.2.3</version>
+ <version>0.2.5</version>
<title>Settings</title>
<include_file>/usr/local/pkg/notes.inc</include_file>
<menu>
@@ -56,24 +56,24 @@
<text>Settings</text>
<url>/pkg_edit.php?xml=notes.xml</url>
<active/>
- </tab>
+ </tab>
</tabs>
- <configpath>installedpackages->package->$packagename->configuration->notes</configpath>
+ <configpath>installedpackages->package->$packagename->configuration->notes</configpath>
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
- <chmod>0755</chmod>
+ <chmod>0755</chmod>
<item>https://packages.pfsense.org/packages/config/notes/notes.inc</item>
</additional_files_needed>
<adddeleteeditpagefields>
<columnitem>
<fielddescr>Title</fielddescr>
<fieldname>title</fieldname>
- </columnitem>
+ </columnitem>
<columnitem>
<fielddescr>Category</fielddescr>
<fieldname>category</fieldname>
</columnitem>
- </adddeleteeditpagefields>
+ </adddeleteeditpagefields>
<fields>
<field>
<fielddescr>Title</fielddescr>
@@ -86,7 +86,7 @@
<fieldname>category</fieldname>
<description>Enter a category.</description>
<type>input</type>
- </field>
+ </field>
<field>
<fielddescr>&lt;b&gt;Notes&lt;/b&gt; &lt;br /&gt; &lt;br /&gt;</fielddescr>
<fieldname>notes</fieldname>
@@ -94,16 +94,16 @@
<type>textarea</type>
<encoding>base64</encoding>
<size>30</size>
- <cols>70</cols>
+ <cols>70</cols>
<rows>20</rows>
</field>
- </fields>
+ </fields>
<custom_add_php_command>
</custom_add_php_command>
<custom_php_resync_config_command>
notes_sync_package();
</custom_php_resync_config_command>
- <custom_delete_php_command>
+ <custom_delete_php_command>
notes_sync_package();
</custom_delete_php_command>
<custom_php_install_command>
diff --git a/config/nrpe2/nrpe2.inc b/config/nrpe2/nrpe2.inc
index 7d541e6b..b5e6a7d9 100644
--- a/config/nrpe2/nrpe2.inc
+++ b/config/nrpe2/nrpe2.inc
@@ -1,42 +1,49 @@
<?php
-
-/**
- * Author: Erik Kristensen
- * Email: erik@erikkristensen.com
- *
- * Developed for: pfSense.com
- *
- * Copyright (c) 2009, pfSense.com
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in thedocumentation and/or other materials provided with the distribution.
- * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
- *
- */
-
+/*
+ nrpe2.inc
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 Erik Kristensen <erik@erikkristensen.com>
+ Copyright (C) 2011-2013 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
+ 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('filter.inc');
-$pfs_version = substr(trim(file_get_contents("/etc/version")),0,3);
+global $pfs_version;
+$pfs_version = substr(trim(file_get_contents("/etc/version")), 0, 3);
-if ($pfs_version == "2.0") {
- define('NRPE_BASE', '/usr/local');
-} else {
+if ($pfs_version == "2.1" || $pfs_version == "2.2") {
define('NRPE_BASE', '/usr/pbi/nrpe-' . php_uname("m"));
+} else {
+ define('NRPE_BASE', '/usr/local');
}
-if ($pfs_version == "2.1")
+if ($pfs_version == "2.1") {
define('NRPE_BINARY', NRPE_BASE . "/sbin/nrpe2");
-else
+} else {
define('NRPE_BINARY', "/usr/local/sbin/nrpe2");
+}
define('NRPE_CONFIG_DIR', NRPE_BASE . '/etc');
define('NRPE_RCFILE', '/usr/local/etc/rc.d/nrpe2.sh');
@@ -202,22 +209,21 @@ connection_timeout=300
{$commands}
EOD;
if (defined($config['installedpackages']['nrpe2']['config'][0]['server_address'])) {
- $server_address = $config['installedpackages']['nrpe2']['config'][0]['server_address'];
- $nrpe_cfg .= "server_address={$server_address}";
- }
+ $server_address = $config['installedpackages']['nrpe2']['config'][0]['server_address'];
+ $nrpe_cfg .= "server_address={$server_address}";
+ }
fwrite($fd, $nrpe_cfg);
fclose($fd);
conf_mount_ro();
}
function nrpe2_custom_php_service() {
- global $g, $config;
+ global $config;
if ($config['installedpackages']['nrpe2']['config'][0]['enabled'] == "on") {
- exec(NRPE_RCFILE . " restart");
- }
- else {
- exec(NRPE_RCFILE . " stop");
+ restart_service("nrpe2");
+ } else {
+ stop_service("nrpe2");
}
}
diff --git a/config/nrpe2/nrpe2.xml b/config/nrpe2/nrpe2.xml
index 8d6f0b09..1204e8ec 100644
--- a/config/nrpe2/nrpe2.xml
+++ b/config/nrpe2/nrpe2.xml
@@ -1,9 +1,50 @@
<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ====================================================================================== */
+/*
+ nrpe2.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 Erik Kristensen
+ Copyright (C) 2011-2013 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<description>Nagios NRPEv2</description>
- <requirements>Describe your package requirements here</requirements>
<name>nrpe2</name>
- <version>2.2</version>
+ <version>2.2.1</version>
<title>NRPEv2</title>
<aftersaveredirect>/pkg_edit.php?xml=nrpe2.xml&amp;id=0</aftersaveredirect>
<include_file>/usr/local/pkg/nrpe2.inc</include_file>
@@ -22,7 +63,6 @@
<configpath>installedpackages->package->nrpe2</configpath>
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
- <chmod>077</chmod>
<item>https://packages.pfsense.org/packages/config/nrpe2/nrpe2.inc</item>
</additional_files_needed>
<fields>
@@ -34,7 +74,7 @@
<field>
<fielddescr>Enabled</fielddescr>
<fieldname>enabled</fieldname>
- <description>Check this to enable NRPE daemon</description>
+ <description>Check this to enable NRPE daemon.</description>
<type>checkbox</type>
</field>
<field>
@@ -52,20 +92,20 @@
<field>
<fielddescr>Bind IP Address</fielddescr>
<fieldname>server_address</fieldname>
- <description>Set this to the IP address of the interface you want the daemon to listen on. (optional)</description>
+ <description>Set this to the IP address of the interface you want the daemon to listen on. (Optional)</description>
<type>input</type>
</field>
<field>
<fielddescr>Nagios Server(s)</fielddescr>
<fieldname>allowed_hosts</fieldname>
- <description>IP Address of Nagios server, usualy a single IP, but if multiple delimit by comma</description>
+ <description>IP Address of Nagios server. Usually a single IP; multiple IPs must be delimited by comma.</description>
<type>input</type>
<required/>
</field>
<field>
<fielddescr>Allow Arguments (dont_blame_nrpe)</fielddescr>
<fieldname>dont_blame_nrpe</fieldname>
- <description>Check this to enable accept NRPE arguments (Default: 0)</description>
+ <description>Check this to enable accept NRPE arguments. (Default: 0)</description>
<type>checkbox</type>
</field>
@@ -118,7 +158,7 @@
<rowhelperfield>
<fielddescr>Extra Options (Example: -s Z \$ARG1\$ \$ARG2\$)</fielddescr>
<fieldname>extra</fieldname>
- <description>Warning! Use at your own risk, incorrect settings here may prevent NRPE from starting!</description>
+ <description><![CDATA[<strong>Warning! Use at your own risk, incorrect settings here may prevent NRPE from starting!</strong>]]></description>
<type>input</type>
<size>25</size>
</rowhelperfield>
diff --git a/config/nut/nut.inc b/config/nut/nut.inc
index dae2269e..578bb82f 100644
--- a/config/nut/nut.inc
+++ b/config/nut/nut.inc
@@ -126,7 +126,7 @@
if (!$post['remotename']) {
$input_errors[] = 'You must specify a name in the \'Remote UPS Name\' field';
}
- if ($post['remotename'] && !preg_match("/^[a-zA-Z0-9-_]+$/", $post['name'])) {
+ if ($post['remotename'] && !preg_match("/^[a-zA-Z0-9-_]+$/", $post['remotename'])) {
$input_errors[] = 'Only [Aa-Zz], [0-9], and [-_] accepted in the \'Remote UPS Name\' field';
}
if (!$post['remoteaddr'] || !is_ipaddr($post['remoteaddr'])) {
diff --git a/config/openvpn-client-export/openvpn-client-export.inc b/config/openvpn-client-export/openvpn-client-export.inc
index 979c5f1b..963a2604 100755
--- a/config/openvpn-client-export/openvpn-client-export.inc
+++ b/config/openvpn-client-export/openvpn-client-export.inc
@@ -40,8 +40,8 @@ require_once("util.inc");
require_once("pfsense-utils.inc");
global $current_openvpn_version, $current_openvpn_version_rev;
-$current_openvpn_version = "2.3.6";
-$current_openvpn_version_rev = "03";
+$current_openvpn_version = "2.3.8";
+$current_openvpn_version_rev = "01";
function openvpn_client_export_install() {
global $current_openvpn_version;
@@ -90,10 +90,10 @@ function openvpn_client_export_prefix($srvid, $usrid = null, $crtid = null) {
$host = empty($config['system']['hostname']) ? "openvpn" : $config['system']['hostname'];
$prot = ($settings['protocol'] == 'UDP' ? 'udp' : $settings['protocol']);
$port = $settings['local_port'];
-
+
$filename_addition = "";
if ($usrid && is_numeric($usrid)) {
- $filename_addition = "-".$config['system']['user'][$usrid]['name'];
+ $filename_addition = "-" . $config['system']['user'][$usrid]['name'];
} elseif ($crtid && is_numeric($crtid) && function_exists("cert_get_cn")) {
$filename_addition = "-" . str_replace(' ', '_', cert_get_cn($config['cert'][$crtid]['crt']));
}
@@ -185,9 +185,9 @@ function openvpn_client_export_validate_config($srvid, $usrid, $crtid) {
return array($settings, $server_cert, $server_ca, $servercn, $user, $cert, $nokeys);
}
-function openvpn_client_export_config($srvid, $usrid, $crtid, $useaddr, $verifyservercn, $randomlocalport, $usetoken, $nokeys = false, $proxy, $expformat = "baseconf", $outpass = "", $skiptls=false, $doslines=false, $openvpnmanager, $advancedoptions = "") {
+function openvpn_client_export_config($srvid, $usrid, $crtid, $useaddr, $verifyservercn, $randomlocalport, $usetoken, $nokeys = false, $proxy, $expformat = "baseconf", $outpass = "", $skiptls = false, $doslines = false, $openvpnmanager, $advancedoptions = "") {
global $config, $input_errors, $g;
- $pfs_version = substr(trim(file_get_contents("/etc/version")),0,3);
+ $pfs_version = substr(trim(file_get_contents("/etc/version")), 0, 3);
$nl = ($doslines) ? "\r\n" : "\n";
$conf = "";
@@ -374,7 +374,7 @@ function openvpn_client_export_config($srvid, $usrid, $crtid, $useaddr, $verifys
$conf .= "management-forget-disconnect{$nl}";
$conf .= $nl;
};
-
+
// add advanced options
$advancedoptions = str_replace("\r\n", "\n", $advancedoptions);
$advancedoptions = str_replace("\n", $nl, $advancedoptions);
@@ -668,12 +668,13 @@ function viscosity_openvpn_client_config_exporter($srvid, $usrid, $crtid, $usead
}
$conf = openvpn_client_export_config($srvid, $usrid, $crtid, $useaddr, $verifyservercn, $randomlocalport, $usetoken, true, $proxy, "baseconf", $outpass, true, true, $openvpnmanager, $advancedoptions);
- if (!$conf)
+ if (!$conf) {
return false;
+ }
// We need to nuke the ca line from the above config if it exists.
$conf = explode("\n", $conf);
- for ($i=0; $i < count($conf); $i++) {
+ for ($i = 0; $i < count($conf); $i++) {
if ((substr($conf[$i], 0, 3) == "ca ") || (substr($conf[$i], 0, 7) == "pkcs12 ")) {
unset($conf[$i]);
}
@@ -866,10 +867,11 @@ function openvpn_client_export_sharedkey_config($srvid, $useaddr, $proxy, $zipco
$shkeyfile = "{$tempdir}/{$shkeyfile}";
file_put_contents("{$shkeyfile}", base64_decode($settings['shared_key']));
- if(file_exists("/usr/pbi/zip-{$uname_p}/bin/zip"))
+ if (file_exists("/usr/pbi/zip-{$uname_p}/bin/zip")) {
exec("cd {$tempdir}/.. && /usr/pbi/zip-{$uname_p}/bin/zip -r {$g['tmp_path']}/{$prefix}-config.zip {$prefix}");
- else
+ } else {
exec("cd {$tempdir}/.. && /usr/local/bin/zip -r {$g['tmp_path']}/{$prefix}-config.zip {$prefix}");
+ }
// Remove temporary directory
exec("rm -rf {$tempdir}");
@@ -952,7 +954,7 @@ function openvpn_client_export_find_port_forwards($targetip, $targetport, $targe
}
$dstaddr = trim(filter_generate_address($natent, 'destination', true));
- if(!$dstaddr) {
+ if (!$dstaddr) {
$dstaddr = $FilterIflist[$natif]['ip'];
}
diff --git a/config/openvpn-client-export/openvpn-client-export.xml b/config/openvpn-client-export/openvpn-client-export.xml
index a9630730..1a150dc5 100755
--- a/config/openvpn-client-export/openvpn-client-export.xml
+++ b/config/openvpn-client-export/openvpn-client-export.xml
@@ -44,7 +44,7 @@
]]>
</copyright>
<name>OpenVPN Client Export</name>
- <version>1.2.17</version>
+ <version>1.2.19</version>
<title>OpenVPN Client Export</title>
<include_file>/usr/local/pkg/openvpn-client-export.inc</include_file>
<tabs>
@@ -65,7 +65,7 @@
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
- <item>https://files.pfsense.org/packages/openvpn-client-export/openvpn-client-export-2.3.6.tgz</item>
+ <item>https://files.pfsense.org/packages/openvpn-client-export/openvpn-client-export-2.3.8.tgz</item>
<do_not_add_to_port/>
</additional_files_needed>
<additional_files_needed>
diff --git a/config/openvpn-client-export/vpn_openvpn_export.php b/config/openvpn-client-export/vpn_openvpn_export.php
index a445e986..246e7421 100755
--- a/config/openvpn-client-export/vpn_openvpn_export.php
+++ b/config/openvpn-client-export/vpn_openvpn_export.php
@@ -40,40 +40,48 @@ global $current_openvpn_version, $current_openvpn_version_rev;
$pgtitle = array("OpenVPN", "Client Export Utility");
-if (!is_array($config['openvpn']['openvpn-server']))
+if (!is_array($config['openvpn']['openvpn-server'])) {
$config['openvpn']['openvpn-server'] = array();
+}
$a_server = $config['openvpn']['openvpn-server'];
-if (!is_array($config['system']['user']))
+if (!is_array($config['system']['user'])) {
$config['system']['user'] = array();
+}
$a_user = $config['system']['user'];
-if (!is_array($config['cert']))
+if (!is_array($config['cert'])) {
$config['cert'] = array();
+}
$a_cert = $config['cert'];
$ras_server = array();
-foreach($a_server as $sindex => $server) {
- if (isset($server['disable']))
+foreach ($a_server as $sindex => $server) {
+ if (isset($server['disable'])) {
continue;
+ }
$ras_user = array();
$ras_certs = array();
- if (stripos($server['mode'], "server") === false)
+ if (stripos($server['mode'], "server") === false) {
continue;
+ }
if (($server['mode'] == "server_tls_user") && ($server['authmode'] == "Local Database")) {
- foreach($a_user as $uindex => $user) {
- if (!is_array($user['cert']))
+ foreach ($a_user as $uindex => $user) {
+ if (!is_array($user['cert'])) {
continue;
- foreach($user['cert'] as $cindex => $cert) {
+ }
+ foreach ($user['cert'] as $cindex => $cert) {
// If $cert is not an array, it's a certref not a cert.
- if (!is_array($cert))
+ if (!is_array($cert)) {
$cert = lookup_cert($cert);
+ }
- if ($cert['caref'] != $server['caref'])
+ if ($cert['caref'] != $server['caref']) {
continue;
+ }
$ras_userent = array();
$ras_userent['uindex'] = $uindex;
$ras_userent['cindex'] = $cindex;
@@ -83,9 +91,10 @@ foreach($a_server as $sindex => $server) {
}
}
} elseif (($server['mode'] == "server_tls") || (($server['mode'] == "server_tls_user") && ($server['authmode'] != "Local Database"))) {
- foreach($a_cert as $cindex => $cert) {
- if (($cert['caref'] != $server['caref']) || ($cert['refid'] == $server['certref']))
+ foreach ($a_cert as $cindex => $cert) {
+ if (($cert['caref'] != $server['caref']) || ($cert['refid'] == $server['certref'])) {
continue;
+ }
$ras_cert_entry['cindex'] = $cindex;
$ras_cert_entry['certname'] = $cert['descr'];
$ras_cert_entry['certref'] = $cert['refid'];
@@ -96,10 +105,11 @@ foreach($a_server as $sindex => $server) {
$ras_serverent = array();
$prot = $server['protocol'];
$port = $server['local_port'];
- if ($server['description'])
+ if ($server['description']) {
$name = "{$server['description']} {$prot}:{$port}";
- else
+ } else {
$name = "Server {$prot}:{$port}";
+ }
$ras_serverent['index'] = $sindex;
$ras_serverent['name'] = $name;
$ras_serverent['users'] = $ras_user;
@@ -109,12 +119,14 @@ foreach($a_server as $sindex => $server) {
}
$id = $_GET['id'];
-if (isset($_POST['id']))
+if (isset($_POST['id'])) {
$id = $_POST['id'];
+}
$act = $_GET['act'];
-if (isset($_POST['act']))
+if (isset($_POST['act'])) {
$act = $_POST['act'];
+}
if (!empty($act)) {
@@ -125,19 +137,21 @@ if (!empty($act)) {
pfSenseHeader("vpn_openvpn_export.php");
exit;
} else if (($config['openvpn']['openvpn-server'][$srvid]['mode'] != "server_user") &&
- (($usrid === false) || ($crtid === false))) {
+ (($usrid === false) || ($crtid === false))) {
pfSenseHeader("vpn_openvpn_export.php");
exit;
}
- if ($config['openvpn']['openvpn-server'][$srvid]['mode'] == "server_user")
+ if ($config['openvpn']['openvpn-server'][$srvid]['mode'] == "server_user") {
$nokeys = true;
- else
+ } else {
$nokeys = false;
+ }
$useaddr = '';
- if (isset($_GET['useaddr']) && !empty($_GET['useaddr']))
+ if (isset($_GET['useaddr']) && !empty($_GET['useaddr'])) {
$useaddr = trim($_GET['useaddr']);
+ }
if (!(is_ipaddr($useaddr) || is_hostname($useaddr) ||
in_array($useaddr, array("serveraddr", "servermagic", "servermagichost", "serverhostname")))) {
@@ -192,10 +206,10 @@ if (!empty($act)) {
$exp_name = openvpn_client_export_prefix($srvid, $usrid, $crtid);
- if(substr($act, 0, 4) == "conf") {
+ if (substr($act, 0, 4) == "conf") {
switch ($act) {
case "confzip":
- $exp_name = urlencode($exp_name."-config.zip");
+ $exp_name = urlencode($exp_name . "-config.zip");
$expformat = "zip";
break;
case "conf_yealink_t28":
@@ -215,30 +229,30 @@ if (!empty($act)) {
$expformat = "snom";
break;
case "confinline":
- $exp_name = urlencode($exp_name."-config.ovpn");
+ $exp_name = urlencode($exp_name . "-config.ovpn");
$expformat = "inline";
break;
case "confinlinedroid":
- $exp_name = urlencode($exp_name."-android-config.ovpn");
+ $exp_name = urlencode($exp_name . "-android-config.ovpn");
$expformat = "inlinedroid";
break;
case "confinlineios":
- $exp_name = urlencode($exp_name."-ios-config.ovpn");
+ $exp_name = urlencode($exp_name . "-ios-config.ovpn");
$expformat = "inlineios";
break;
default:
- $exp_name = urlencode($exp_name."-config.ovpn");
+ $exp_name = urlencode($exp_name . "-config.ovpn");
$expformat = "baseconf";
}
$exp_path = openvpn_client_export_config($srvid, $usrid, $crtid, $useaddr, $verifyservercn, $randomlocalport, $usetoken, $nokeys, $proxy, $expformat, $password, false, false, $openvpnmanager, $advancedoptions);
}
- if($act == "visc") {
- $exp_name = urlencode($exp_name."-Viscosity.visc.zip");
+ if ($act == "visc") {
+ $exp_name = urlencode($exp_name . "-Viscosity.visc.zip");
$exp_path = viscosity_openvpn_client_config_exporter($srvid, $usrid, $crtid, $useaddr, $verifyservercn, $randomlocalport, $usetoken, $password, $proxy, $openvpnmanager, $advancedoptions);
}
- if(substr($act, 0, 4) == "inst") {
+ if (substr($act, 0, 4) == "inst") {
$exp_name = urlencode($exp_name."-install.exe");
$exp_path = openvpn_client_export_installer($srvid, $usrid, $crtid, $useaddr, $verifyservercn, $randomlocalport, $usetoken, $password, $proxy, $openvpnmanager, $advancedoptions, substr($act, 5));
}
@@ -316,8 +330,9 @@ function download_begin(act, i, j) {
return;
}
useaddr = document.getElementById("useaddr_hostname").value;
- } else
+ } else {
useaddr = document.getElementById("useaddr").value;
+ }
advancedoptions = document.getElementById("advancedoptions").value;
@@ -325,21 +340,25 @@ function download_begin(act, i, j) {
verifyservercn = document.getElementById("verifyservercn").value;
var randomlocalport = 0;
- if (document.getElementById("randomlocalport").checked)
+ if (document.getElementById("randomlocalport").checked) {
randomlocalport = 1;
+ }
var usetoken = 0;
- if (document.getElementById("usetoken").checked)
+ if (document.getElementById("usetoken").checked) {
usetoken = 1;
+ }
var usepass = 0;
- if (document.getElementById("usepass").checked)
+ if (document.getElementById("usepass").checked) {
usepass = 1;
+ }
var openvpnmanager = 0;
- if (document.getElementById("openvpnmanager").checked)
+ if (document.getElementById("openvpnmanager").checked) {
openvpnmanager = 1;
+ }
var pass = document.getElementById("pass").value;
var conf = document.getElementById("conf").value;
- if (usepass && (act.substring(0,4) == "inst")) {
+ if (usepass && (act.substring(0, 4) == "inst")) {
if (!pass || !conf) {
alert("The password or confirm field is empty");
return;
@@ -352,8 +371,9 @@ function download_begin(act, i, j) {
var useproxy = 0;
var useproxypass = 0;
- if (document.getElementById("useproxy").checked)
+ if (document.getElementById("useproxy").checked) {
useproxy = 1;
+ }
var proxyaddr = document.getElementById("proxyaddr").value;
var proxyport = document.getElementById("proxyport").value;
@@ -363,8 +383,9 @@ function download_begin(act, i, j) {
return;
}
- if (document.getElementById("useproxypass").value != 'none')
+ if (document.getElementById("useproxypass").value != 'none') {
useproxypass = 1;
+ }
var proxytype = document.getElementById("useproxytype").value;
@@ -404,8 +425,9 @@ function download_begin(act, i, j) {
dlurl += "&randomlocalport=" + escape(randomlocalport);
dlurl += "&openvpnmanager=" + escape(openvpnmanager);
dlurl += "&usetoken=" + escape(usetoken);
- if (usepass)
+ if (usepass) {
dlurl += "&password=" + escape(pass);
+ }
if (useproxy) {
dlurl += "&proxy_type=" + escape(proxytype);
dlurl += "&proxy_addr=" + escape(proxyaddr);
@@ -419,19 +441,20 @@ function download_begin(act, i, j) {
dlurl += "&advancedoptions=" + escape(advancedoptions);
- window.open(dlurl,"_self");
+ window.open(dlurl, "_self");
}
function server_changed() {
var table = document.getElementById("users");
- while (table.rows.length > 1 )
+ while (table.rows.length > 1 ) {
table.deleteRow(1);
+ }
var index = document.getElementById("server").selectedIndex;
var users = servers[index][1];
var certs = servers[index][3];
- for (i=0; i < users.length; i++) {
+ for (i = 0; i < users.length; i++) {
var row = table.insertRow(table.rows.length);
var cell0 = row.insertCell(0);
var cell1 = row.insertCell(1);
@@ -462,11 +485,11 @@ function server_changed() {
cell2.innerHTML += "<a href='javascript:download_begin(\"inst-x86-win6\"," + i + ", -1)'>x86-win6<\/a>";
cell2.innerHTML += "&nbsp;&nbsp; ";
cell2.innerHTML += "<a href='javascript:download_begin(\"inst-x64-win6\"," + i + ", -1)'>x64-win6<\/a>";
- cell2.innerHTML += "<br\/>- Mac OSX:<br\/>";
+ cell2.innerHTML += "<br\/>- Mac OS X:<br\/>";
cell2.innerHTML += "&nbsp;&nbsp; ";
cell2.innerHTML += "<a href='javascript:download_begin(\"visc\"," + i + ", -1)'>Viscosity Bundle<\/a>";
}
- for (j=0; j < certs.length; j++) {
+ for (j = 0; j < certs.length; j++) {
var row = table.insertRow(table.rows.length);
var cell0 = row.insertCell(0);
var cell1 = row.insertCell(1);
@@ -501,7 +524,7 @@ function server_changed() {
cell2.innerHTML += "<a href='javascript:download_begin(\"inst-x86-win6\", -1," + j + ")'>x86-win6<\/a>";
cell2.innerHTML += "&nbsp;&nbsp; ";
cell2.innerHTML += "<a href='javascript:download_begin(\"inst-x64-win6\", -1," + j + ")'>x64-win6<\/a>";
- cell2.innerHTML += "<br\/>- Mac OSX:<br\/>";
+ cell2.innerHTML += "<br\/>- Mac OS X:<br\/>";
cell2.innerHTML += "&nbsp;&nbsp; ";
cell2.innerHTML += "<a href='javascript:download_begin(\"visc\", -1," + j + ")'>Viscosity Bundle<\/a>";
if (servers[index][2] == "server_tls") {
@@ -547,7 +570,7 @@ function server_changed() {
cell2.innerHTML += "<a href='javascript:download_begin(\"inst-x86-win6\"," + i + ")'>x86-win6<\/a>";
cell2.innerHTML += "&nbsp;&nbsp; ";
cell2.innerHTML += "<a href='javascript:download_begin(\"inst-x64-win6\"," + i + ")'>x64-win6<\/a>";
- cell2.innerHTML += "<br\/>- Mac OSX:<br\/>";
+ cell2.innerHTML += "<br\/>- Mac OS X:<br\/>";
cell2.innerHTML += "&nbsp;&nbsp; ";
cell2.innerHTML += "<a href='javascript:download_begin(\"visc\"," + i + ")'>Viscosity Bundle<\/a>";
}
@@ -555,25 +578,27 @@ function server_changed() {
function useaddr_changed(obj) {
- if (obj.value == "other")
+ if (obj.value == "other") {
$('HostName').show();
- else
+ } else {
$('HostName').hide();
+ }
}
function usepass_changed() {
- if (document.getElementById("usepass").checked)
+ if (document.getElementById("usepass").checked) {
document.getElementById("usepass_opts").style.display = "";
- else
+ } else {
document.getElementById("usepass_opts").style.display = "none";
+ }
}
function useproxy_changed(obj) {
if ((obj.id == "useproxy" && obj.checked) ||
- (obj.id == "useproxypass" && (obj.value != 'none'))) {
+ (obj.id == "useproxypass" && (obj.value != 'none'))) {
$(obj.id + '_opts').show();
} else {
$(obj.id + '_opts').hide();
@@ -590,7 +615,7 @@ function useproxy_changed(obj) {
}
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="openvpn export">
- <tr>
+ <tr>
<td>
<?php
$tab_array = array();
@@ -612,7 +637,7 @@ function useproxy_changed(obj) {
<td width="22%" valign="top" class="vncellreq">Remote Access Server</td>
<td width="78%" class="vtable">
<select name="server" id="server" class="formselect" onchange="server_changed()">
- <?php foreach($ras_server as & $server): ?>
+ <?php foreach ($ras_server as & $server): ?>
<option value="<?=$server['index'];?>"><?=$server['name'];?></option>
<?php endforeach; ?>
</select>
@@ -914,8 +939,8 @@ function useproxy_changed(obj) {
<br/><a href="https://play.google.com/store/apps/details?id=de.blinkt.openvpn"><?= gettext("OpenVPN For Android") ?></a> - <?=gettext("Recommended client for Android")?>
<br/><a href="http://www.featvpn.com/"><?= gettext("FEAT VPN For Android") ?></a> - <?=gettext("For older versions of Android")?>
<br/><?= gettext("OpenVPN Connect") ?>: <a href="https://play.google.com/store/apps/details?id=net.openvpn.openvpn"><?=gettext("Android (Google Play)")?></a> or <a href="https://itunes.apple.com/us/app/openvpn-connect/id590379981"><?=gettext("iOS (App Store)")?></a> - <?= gettext("Recommended client for iOS") ?>
- <br/><a href="http://www.sparklabs.com/viscosity/"><?= gettext("Viscosity") ?></a> - <?= gettext("Recommended client for Mac OSX") ?>
- <br/><a href="http://code.google.com/p/tunnelblick/"><?= gettext("Tunnelblick") ?></a> - <?= gettext("Free client for OSX") ?>
+ <br/><a href="https://www.sparklabs.com/viscosity/"><?= gettext("Viscosity") ?></a> - <?= gettext("Recommended client for Mac OS X") ?>
+ <br/><a href="https://tunnelblick.net"><?= gettext("Tunnelblick") ?></a> - <?= gettext("Free client for OS X") ?>
</td>
</tr>
</table>
diff --git a/config/openvpn-client-export/vpn_openvpn_export_shared.php b/config/openvpn-client-export/vpn_openvpn_export_shared.php
index 630bb253..5810e97b 100644
--- a/config/openvpn-client-export/vpn_openvpn_export_shared.php
+++ b/config/openvpn-client-export/vpn_openvpn_export_shared.php
@@ -1,22 +1,22 @@
-<?php
+<?php
/*
vpn_openvpn_export_shared.php
part of pfSense (http://www.pfSense.org)
Copyright (C) 2008 Shrew Soft Inc.
Copyright (C) 2010 Ermal Luçi
Copyright (C) 2011-2015 ESF, LLC
- All rights reserved.
+ 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
@@ -44,7 +44,7 @@ if (!is_array($config['openvpn']['openvpn-server'])) {
$a_server = $config['openvpn']['openvpn-server'];
$ras_server = array();
-foreach($a_server as $sindex => $server) {
+foreach ($a_server as $sindex => $server) {
if (isset($server['disable'])) {
continue;
}
@@ -57,8 +57,7 @@ foreach($a_server as $sindex => $server) {
$port = $server['local_port'];
if ($server['description']) {
$name = "{$server['description']} {$prot}:{$port}";
- }
- else {
+ } else {
$name = "Shared Key Server {$prot}:{$port}";
}
$ras_serverent['index'] = $sindex;
@@ -79,7 +78,7 @@ if (isset($_POST['act'])) {
$error = false;
-if(($act == "skconf") || ($act == "skzipconf")) {
+if (($act == "skconf") || ($act == "skzipconf")) {
$srvid = $_GET['srvid'];
if (($srvid === false) || ($config['openvpn']['openvpn-server'][$srvid]['mode'] != "p2p_shared_key")) {
pfSenseHeader("vpn_openvpn_export.php");
@@ -189,13 +188,15 @@ function download_begin(act) {
return;
}
useaddr = document.getElementById("useaddr_hostname").value;
- } else
+ } else {
useaddr = document.getElementById("useaddr").value;
+ }
var useproxy = 0;
var useproxypass = 0;
- if (document.getElementById("useproxy").checked)
+ if (document.getElementById("useproxy").checked) {
useproxy = 1;
+ }
var proxyaddr = document.getElementById("proxyaddr").value;
var proxyport = document.getElementById("proxyport").value;
@@ -205,8 +206,9 @@ function download_begin(act) {
return;
}
- if (document.getElementById("useproxypass").value != 'none')
+ if (document.getElementById("useproxypass").value != 'none') {
useproxypass = 1;
+ }
var proxytype = document.getElementById("useproxytype").value;
@@ -245,14 +247,15 @@ function download_begin(act) {
}
}
- window.open(dlurl,"_self");
+ window.open(dlurl, "_self");
}
function server_changed() {
var table = document.getElementById("clients");
- while (table.rows.length > 1 )
+ while (table.rows.length > 1 ) {
table.deleteRow(1);
+ }
var index = document.getElementById("server").selectedIndex;
@@ -271,17 +274,18 @@ function server_changed() {
function useaddr_changed(obj) {
- if (obj.value == "other")
+ if (obj.value == "other") {
$('HostName').show();
- else
+ } else {
$('HostName').hide();
-
+ }
+
}
function useproxy_changed(obj) {
if ((obj.id == "useproxy" && obj.checked) ||
- (obj.id == "useproxypass" && (obj.value != 'none'))) {
+ (obj.id == "useproxypass" && (obj.value != 'none'))) {
$(obj.id + '_opts').show();
} else {
$(obj.id + '_opts').hide();
@@ -298,9 +302,9 @@ function useproxy_changed(obj) {
}
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="openvpn export shared">
- <tr>
+ <tr>
<td>
- <?php
+ <?php
$tab_array = array();
$tab_array[] = array(gettext("Server"), false, "vpn_openvpn_server.php");
$tab_array[] = array(gettext("Client"), false, "vpn_openvpn_client.php");
@@ -320,7 +324,7 @@ function useproxy_changed(obj) {
<td width="22%" valign="top" class="vncellreq">Shared Key Server</td>
<td width="78%" class="vtable">
<select name="server" id="server" class="formselect" onchange="server_changed()">
- <?php foreach($ras_server as & $server): ?>
+ <?php foreach ($ras_server as & $server): ?>
<option value="<?=$server['sindex'];?>"><?=$server['name'];?></option>
<?php endforeach; ?>
</select>
@@ -406,7 +410,7 @@ function useproxy_changed(obj) {
</tr>
<tr>
<td width="25%">
- <br />
+ <br />
</td>
<td>
<select name="useproxypass" id="useproxypass" class="formselect" onchange="useproxy_changed(this)">
@@ -417,39 +421,39 @@ function useproxy_changed(obj) {
<span class="vexpl">
Choose proxy authentication if any.
</span>
- <br />
- <table border="0" cellpadding="2" cellspacing="0" id="useproxypass_opts" style="display:none" summary="name and password">
- <tr>
- <td align="right" width="25%">
- <span class="vexpl">
- &nbsp;Username :&nbsp;
- </span>
- </td>
- <td>
- <input name="proxyuser" id="proxyuser" class="formfld unknown" size="20" value="" />
- </td>
- </tr>
- <tr>
- <td align="right" width="25%">
- <span class="vexpl">
- &nbsp;Password :&nbsp;
- </span>
- </td>
- <td>
- <input name="proxypass" id="proxypass" type="password" class="formfld pwd" size="20" value="" />
- </td>
- </tr>
- <tr>
- <td align="right" width="25%">
- <span class="vexpl">
- &nbsp;Confirm :&nbsp;
- </span>
- </td>
- <td>
- <input name="proxyconf" id="proxyconf" type="password" class="formfld pwd" size="20" value="" />
- </td>
- </tr>
- </table>
+ <br />
+ <table border="0" cellpadding="2" cellspacing="0" id="useproxypass_opts" style="display:none" summary="name and password">
+ <tr>
+ <td align="right" width="25%">
+ <span class="vexpl">
+ &nbsp;Username :&nbsp;
+ </span>
+ </td>
+ <td>
+ <input name="proxyuser" id="proxyuser" class="formfld unknown" size="20" value="" />
+ </td>
+ </tr>
+ <tr>
+ <td align="right" width="25%">
+ <span class="vexpl">
+ &nbsp;Password :&nbsp;
+ </span>
+ </td>
+ <td>
+ <input name="proxypass" id="proxypass" type="password" class="formfld pwd" size="20" value="" />
+ </td>
+ </tr>
+ <tr>
+ <td align="right" width="25%">
+ <span class="vexpl">
+ &nbsp;Confirm :&nbsp;
+ </span>
+ </td>
+ <td>
+ <input name="proxyconf" id="proxyconf" type="password" class="formfld pwd" size="20" value="" />
+ </td>
+ </tr>
+ </table>
</td>
</tr>
</table>
diff --git a/config/pfflowd/pfflowd.xml b/config/pfflowd/pfflowd.xml
index 0a683bba..ea32c858 100644
--- a/config/pfflowd/pfflowd.xml
+++ b/config/pfflowd/pfflowd.xml
@@ -1,4 +1,46 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ========================================================================== */
+/*
+ pfflowd.xml
+ Copyright (C) 2008 Bill Marquette
+ Copyright (C) 2011 Ermal Luçi
+ Copyright (C) 2011 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
+ part of pfSense (http://www.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.
+*/
+/* ========================================================================== */
+ ]]>
+ </copyright>
<name>pfflowd</name>
<version>1.0.3</version>
<title>pfflowd: Settings</title>
@@ -82,19 +124,23 @@
conf_mount_rw();
config_lock();
global $config;
- foreach($config['installedpackages']['pfflowd']['config'] as $cf) {
- if($cf['host'] != "") {
+ foreach ($config['installedpackages']['pfflowd']['config'] as $cf) {
+ if ($cf['host'] != "") {
$start = "\n/sbin/ifconfig pfsync0 up\n";
$start .= "/usr/local/sbin/pfflowd ";
$start .= " -n {$cf['host']}";
- if($cf['port'] != "")
+ if ($cf['port'] != "") {
$start .= ":{$cf['port']}";
- if(!empty($cf['sourcehost']))
+ }
+ if (!empty($cf['sourcehost'])) {
$start .= " -s {$cf['sourcehost']} ";
- if($cf['direction'] != "")
+ }
+ if ($cf['direction'] != "") {
$start .= " -S {$cf['direction']}";
- if($cf['version'] != "")
+ }
+ if ($cf['version'] != "") {
$start .= " -v {$cf['version']}";
+ }
write_rcfile(array(
"file" => "pfflowd.sh",
"start" => $start,
@@ -110,18 +156,20 @@
}
function validate_form_pfflowd($post, &$input_errors) {
- if(($post['host'] == "") || !is_ipaddr($post['host']))
+ if (($post['host'] == "") || !is_ipaddr($post['host'])) {
$input_errors[] = 'You must specify a valid ip address in the \'Host\' field';
- if(($post['port'] == "") || !is_port($post['port']))
+ }
+ if (($post['port'] == "") || !is_port($post['port'])) {
$input_errors[] = 'You must specify a valid port number in the \'Port\' field';
+ }
}
-
+
function cleanup_config_pfflowd() {
global $a_pkg;
$pffconf = array();
if (is_array($a_pkg)) {
foreach($a_pkg as $cf) {
- if($cf['host'] != "") {
+ if ($cf['host'] != "") {
$pffconf = $cf;
}
}
diff --git a/config/servicewatchdog/services_servicewatchdog.php b/config/servicewatchdog/services_servicewatchdog.php
index bd4d4442..6c91b98e 100644
--- a/config/servicewatchdog/services_servicewatchdog.php
+++ b/config/servicewatchdog/services_servicewatchdog.php
@@ -41,14 +41,16 @@ require_once("functions.inc");
require_once("service-utils.inc");
require_once("servicewatchdog.inc");
-if (!is_array($config['installedpackages']['servicewatchdog']['item']))
+if (!is_array($config['installedpackages']['servicewatchdog']['item'])) {
$config['installedpackages']['servicewatchdog']['item'] = array();
+}
$a_pwservices = &$config['installedpackages']['servicewatchdog']['item'];
/* if a custom message has been passed along, lets process it */
-if ($_GET['savemsg'])
+if ($_GET['savemsg']) {
$savemsg = $_GET['savemsg'];
+}
if ($_GET['act'] == "del") {
if ($a_pwservices[$_GET['id']]) {
@@ -65,13 +67,15 @@ if (isset($_POST['Update'])) {
if (is_array($_POST['notifies']) && count($_POST['notifies'])) {
/* Check each service and set the notify flag only for those chosen, remove those that are unset. */
foreach ($a_pwservices as $idx => $thisservice) {
- if (!is_array($thisservice))
+ if (!is_array($thisservice)) {
continue;
+ }
if (in_array($idx, $_POST['notifies'])) {
$a_pwservices[$idx]['notify'] = true;
} else {
- if (isset($a_pwservices[$idx]['notify']))
+ if (isset($a_pwservices[$idx]['notify'])) {
unset($a_pwservices[$idx]['notify']);
+ }
}
}
} else { /* No notifies selected, remove them all. */
@@ -111,26 +115,31 @@ if (isset($_POST['del_x'])) {
/* copy all services < $movebtn and not selected */
for ($i = 0; $i < $movebtn; $i++) {
- if (!in_array($i, $_POST['pwservices']))
+ if (!in_array($i, $_POST['pwservices'])) {
$a_pwservices_new[] = $a_pwservices[$i];
+ }
}
/* copy all selected services */
for ($i = 0; $i < count($a_pwservices); $i++) {
- if ($i == $movebtn)
+ if ($i == $movebtn) {
continue;
- if (in_array($i, $_POST['pwservices']))
+ }
+ if (in_array($i, $_POST['pwservices'])) {
$a_pwservices_new[] = $a_pwservices[$i];
+ }
}
/* copy $movebtn service */
- if ($movebtn < count($a_pwservices))
+ if ($movebtn < count($a_pwservices)) {
$a_pwservices_new[] = $a_pwservices[$movebtn];
+ }
/* copy all services > $movebtn and not selected */
for ($i = $movebtn+1; $i < count($a_pwservices); $i++) {
- if (!in_array($i, $_POST['pwservices']))
+ if (!in_array($i, $_POST['pwservices'])) {
$a_pwservices_new[] = $a_pwservices[$i];
+ }
}
$a_pwservices = $a_pwservices_new;
servicewatchdog_cron_job();
@@ -141,7 +150,7 @@ if (isset($_POST['del_x'])) {
}
$closehead = false;
-$pgtitle = array(gettext("Services"),gettext("Service Watchdog"));
+$pgtitle = array(gettext("Services"), gettext("Service Watchdog"));
include("head.inc");
?>
@@ -160,83 +169,99 @@ include("head.inc");
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="services to monitor">
<tr><td><div id="mainarea">
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
-<tr><td colspan="8" align="center">
-<?php echo gettext("This page allows you to select services to be monitored so that they may be automatically restarted if they crash or are stopped."); ?>
-<br/><br/>
-</td></tr>
-<tr id="frheader">
-<td width="5%" class="list">&nbsp;</td>
-<td width="5%" class="listhdrr">Notify</td>
-<td width="30%" class="listhdrr"><?=gettext("Service Name");?></td>
-<td width="60%" class="listhdrr"><?=gettext("Description");?></td>
-<td width="5%" class="list">
-<table border="0" cellspacing="0" cellpadding="1" summary="buttons">
- <tr><td width="17">
- <?php if (count($a_pwservices) == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected services");?>" border="0" alt="delete" />
- <?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected services"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected services?");?>')" />
- <?php endif; ?>
- </td>
- <td><a href="services_servicewatchdog_add.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new service"); ?>" alt="add" /></a></td>
+ <tr>
+ <td colspan="8" align="center">
+ <?php echo gettext("This page allows you to select services to be monitored so that they may be automatically restarted if they crash or are stopped."); ?>
+ <br/><br/>
+ </td>
+ </tr>
+ <tr id="frheader">
+ <td width="5%" class="list">&nbsp;</td>
+ <td width="5%" class="listhdrr">Notify</td>
+ <td width="30%" class="listhdrr"><?=gettext("Service Name");?></td>
+ <td width="60%" class="listhdrr"><?=gettext("Description");?></td>
+ <td width="5%" class="list">
+ <table border="0" cellspacing="0" cellpadding="1" summary="buttons">
+ <tr>
+ <td width="17">
+ <?php if (count($a_pwservices) == 0): ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected services");?>" border="0" alt="delete" />
+ <?php else: ?>
+ <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected services"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected services?");?>')" />
+ <?php endif; ?>
+ </td>
+ <td><a href="services_servicewatchdog_add.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new service"); ?>" alt="add" /></a></td>
+ </tr>
+ </table>
+ </td>
</tr>
-</table>
-</td>
-</tr>
<?php
$nservices = $i = 0;
foreach ($a_pwservices as $thisservice):
?>
<tr valign="top" id="fr<?=$nservices;?>">
- <td class="listt"><input type="checkbox" id="frc<?=$nservices;?>" name="pwservices[]" value="<?=$i;?>" onClick="fr_bgcolor('<?=$nservices;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" /></td>
- <td class="listlr"><input type="checkbox" id="notify<?=$nservices;?>" name="notifies[]" value="<?=$i;?>" style="margin: 0; padding: 0; width: 15px; height: 15px;" <?PHP if (isset($thisservice['notify'])) echo 'checked="CHECKED"';?>/></td>
- <td class="listr" onclick="fr_toggle(<?=$nservices;?>)" id="frd<?=$nservices;?>" ondblclick="document.location='services_servicewatchdog_add.php?id=<?=$nservices;?>';">
- <?=$thisservice['name'];?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nservices;?>)" id="frd<?=$nservices;?>" ondblclick="document.location='services_servicewatchdog_add.php?id=<?=$nservices;?>';">
- <?=$thisservice['description'];?>
- </td>
- <td valign="middle" class="list" nowrap>
- <table border="0" cellspacing="0" cellpadding="1" summary="add">
- <tr>
- <td><input onmouseover="fr_insline(<?=$nservices;?>, true)" onmouseout="fr_insline(<?=$nservices;?>, false)" name="move_<?=$i;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" title="<?=gettext("move selected services before this service");?>" height="17" type="image" width="17" border="0" /></td>
- <td align="center" valign="middle"><a href="services_servicewatchdog.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this service?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete service");?>" alt="delete" /></a></td>
- </tr>
- </table>
- </td></tr>
-<?php $i++; $nservices++; endforeach; ?>
- <tr>
- <td class="list" colspan="4"></td>
- <td class="list" valign="middle" nowrap>
- <table border="0" cellspacing="0" cellpadding="1" summary="add">
+ <td class="listt"><input type="checkbox" id="frc<?=$nservices;?>" name="pwservices[]" value="<?=$i;?>" onClick="fr_bgcolor('<?=$nservices;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" /></td>
+ <td class="listlr"><input type="checkbox" id="notify<?=$nservices;?>" name="notifies[]" value="<?=$i;?>" style="margin: 0; padding: 0; width: 15px; height: 15px;" <?PHP if (isset($thisservice['notify'])) echo 'checked="CHECKED"';?>/></td>
+ <td class="listr" onclick="fr_toggle(<?=$nservices;?>)" id="frd<?=$nservices;?>" ondblclick="document.location='services_servicewatchdog_add.php?id=<?=$nservices;?>';">
+ <?=$thisservice['name'];?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nservices;?>)" id="frd<?=$nservices;?>" ondblclick="document.location='services_servicewatchdog_add.php?id=<?=$nservices;?>';">
+ <?=$thisservice['description'];?>
+ </td>
+ <td valign="middle" class="list" nowrap>
+ <table border="0" cellspacing="0" cellpadding="1" summary="add">
+ <tr>
+ <td><input onmouseover="fr_insline(<?=$nservices;?>, true)" onmouseout="fr_insline(<?=$nservices;?>, false)" name="move_<?=$i;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" title="<?=gettext("move selected services before this service");?>" height="17" type="image" width="17" border="0" /></td>
+ <td align="center" valign="middle"><a href="services_servicewatchdog.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this service?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete service");?>" alt="delete" /></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+<?php
+ $i++;
+ $nservices++;
+endforeach;
+?>
<tr>
- <td><?php if ($nservices == 0): ?><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected services to end"); ?>" border="0" alt="move" /><?php else: ?><input name="move_<?=$i;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" width="17" height="17" title="<?=gettext("move selected services to end");?>" border="0" alt="move" /><?php endif; ?></td>
+ <td class="list" colspan="4"></td>
+ <td class="list" valign="middle" nowrap>
+ <table border="0" cellspacing="0" cellpadding="1" summary="add">
+ <tr>
+ <td><?php if ($nservices == 0): ?><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected services to end"); ?>" border="0" alt="move" /><?php else: ?><input name="move_<?=$i;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" width="17" height="17" title="<?=gettext("move selected services to end");?>" border="0" alt="move" /><?php endif; ?></td>
+ </tr>
+ <tr>
+ <td width="17">
+ <?php if (count($a_pwservices) == 0): ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected services");?>" border="0" alt="delete" />
+ <?php else: ?>
+ <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected services"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected services?");?>')" />
+ <?php endif; ?>
+ </td>
+ <td><a href="services_servicewatchdog_add.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new service"); ?>" alt="add" /></a></td>
+ </tr>
+ </table>
+ </td>
</tr>
<tr>
- <td width="17">
- <?php if (count($a_pwservices) == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected services");?>" border="0" alt="delete" />
- <?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected services"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected services?");?>')" />
- <?php endif; ?>
- </td>
- <td><a href="services_servicewatchdog_add.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new service"); ?>" alt="add" /></a></td>
+ <td></td>
+ <td colspan="4">
+ <?php echo gettext("Check Notify next to services to perform an e-mail notification when the service is restarted. Configure e-mail notifications to receive the alerts."); ?>
+ <br/>
+ <input name="Update" type="submit" class="formbtn" value="<?=gettext("Update Notification Settings"); ?>" />
+ <br/>
+ <br/>
+ </td>
+ <td></td>
</tr>
- </table>
- </td>
+ <tr>
+ <td></td>
+ <td colspan="4">
+ <?php echo gettext("Click to select a service and use the arrows to re-order them in the list. Higher services are checked first."); ?>
+ </td>
+ <td></td>
</tr>
- <tr><td></td><td colspan="4">
- <?php echo gettext("Check Notify next to services to perform an e-mail notification when the service is restarted. Configure e-mail notifications to receive the alerts."); ?>
- <br/>
- <input name="Update" type="submit" class="formbtn" value="<?=gettext("Update Notification Settings"); ?>" />
- <br/>
- <br/>
- </td><td></td></tr>
- <tr><td></td><td colspan="4">
- <?php echo gettext("Click to select a service and use the arrows to re-order them in the list. Higher services are checked first."); ?>
- </td><td></td></tr>
- </table>
+</table>
</div></td></tr>
</table>
</form>
diff --git a/config/servicewatchdog/services_servicewatchdog_add.php b/config/servicewatchdog/services_servicewatchdog_add.php
index 11e5e284..10f24797 100644
--- a/config/servicewatchdog/services_servicewatchdog_add.php
+++ b/config/servicewatchdog/services_servicewatchdog_add.php
@@ -55,7 +55,7 @@ unset($input_errors);
if ($_POST) {
if (!is_numeric($_POST['svcid']))
-
+ return;
if (!isset($system_services[$_POST['svcid']])) {
$input_errors[] = gettext("The supplied service appears to be invalid.");
@@ -72,7 +72,7 @@ if ($_POST) {
}
$closehead = false;
-$pgtitle = array(gettext("Services"),gettext("servicewatchdog"), gettext("Add"));
+$pgtitle = array(gettext("Services"), gettext("servicewatchdog"), gettext("Add"));
include("head.inc");
?>
diff --git a/config/servicewatchdog/servicewatchdog.inc b/config/servicewatchdog/servicewatchdog.inc
index 5b638836..817b92e0 100644
--- a/config/servicewatchdog/servicewatchdog.inc
+++ b/config/servicewatchdog/servicewatchdog.inc
@@ -7,23 +7,27 @@ require_once("notices.inc");
function servicewatchdog_service_matches($svc1, $svc2) {
/* If the arrays are equal, it must be the same service. */
- if ($svc1 == $svc2)
+ if ($svc1 == $svc2) {
return true;
+ }
/* If the names are different, they must not be the same. */
- if ($svc1['name'] != $svc2['name'])
+ if ($svc1['name'] != $svc2['name']) {
return false;
+ }
switch ($svc1['name']) {
case "openvpn":
- if (($svc1['mode'] == $svc2['mode']) && ($svc1['vpnid'] == $svc2['vpnid']))
+ if (($svc1['mode'] == $svc2['mode']) && ($svc1['vpnid'] == $svc2['vpnid'])) {
return true;
- else
+ } else {
return false;
+ }
break;
case "captiveportal":
- if ($svc1['zone'] == $svc2['zone'])
+ if ($svc1['zone'] == $svc2['zone']) {
return true;
- else
+ } else {
return false;
+ }
break;
default:
/* Other services must be the same if the name matches. */
@@ -39,12 +43,14 @@ function servicewatchdog_is_service_watched($svc) {
$a_pwservices = &$config['installedpackages']['servicewatchdog']['item'];
$blacklisted_services = array("cron");
- if (empty($svc['name']) || in_array($svc['name'], $blacklisted_services))
+ if (empty($svc['name']) || in_array($svc['name'], $blacklisted_services)) {
return true;
+ }
foreach ($a_pwservices as $a_svc) {
- if (servicewatchdog_service_matches($svc, $a_svc))
+ if (servicewatchdog_service_matches($svc, $a_svc)) {
return true;
+ }
}
return false;
}
@@ -77,8 +83,9 @@ function servicewatchdog_check_services() {
$descr = strlen($svc['description']) > 50 ? substr($svc['description'], 0, 50) . "..." : $svc['description'];
$error_message = "Service Watchdog detected service {$svc['name']} stopped. Restarting {$svc['name']} ({$descr})";
log_error($error_message);
- if (isset($svc['notify']))
+ if (isset($svc['notify'])) {
notify_via_smtp($error_message);
+ }
service_control_start($svc['name'], $svc);
}
}
diff --git a/config/servicewatchdog/servicewatchdog.xml b/config/servicewatchdog/servicewatchdog.xml
index 685ba997..5a1aebbb 100644
--- a/config/servicewatchdog/servicewatchdog.xml
+++ b/config/servicewatchdog/servicewatchdog.xml
@@ -40,7 +40,7 @@
<requirements>None</requirements>
<faq>Monitors for stopped services and restarts them.</faq>
<name>Service Watchdog</name>
- <version>1.6</version>
+ <version>1.7</version>
<title>Services: Service Watchdog</title>
<include_file>/usr/local/pkg/servicewatchdog.inc</include_file>
<menu>
diff --git a/config/servicewatchdog/servicewatchdog_cron.php b/config/servicewatchdog/servicewatchdog_cron.php
index 004afd97..9979917e 100644
--- a/config/servicewatchdog/servicewatchdog_cron.php
+++ b/config/servicewatchdog/servicewatchdog_cron.php
@@ -6,8 +6,9 @@ require_once("servicewatchdog.inc");
global $g;
/* Do nothing at bootup. */
-if ($g['booting'] || file_exists("{$g['varrun_path']}/booting"))
+if ($g['booting'] || file_exists("{$g['varrun_path']}/booting")) {
return;
+}
servicewatchdog_check_services();
?> \ No newline at end of file
diff --git a/config/sudo/sudo.inc b/config/sudo/sudo.inc
index ed0feb9c..ccbda309 100644
--- a/config/sudo/sudo.inc
+++ b/config/sudo/sudo.inc
@@ -30,7 +30,7 @@
require_once("config.inc");
global $pfs_version;
-$pfs_version = substr(trim(file_get_contents("/etc/version")),0,3);
+$pfs_version = substr(trim(file_get_contents("/etc/version")), 0, 3);
switch ($pfs_version) {
case "2.1":
/* Hackish way to detect if someone manually did pkg_add rather than use pbi. */
@@ -38,7 +38,7 @@ switch ($pfs_version) {
define('SUDO_BASE', '/usr/pbi/sudo-' . php_uname("m"));
define('SUDO_LIBEXEC_DIR', '/usr/local/libexec/');
} else {
- define('SUDO_BASE','/usr/local');
+ define('SUDO_BASE', '/usr/local');
define('SUDO_LIBEXEC_DIR', '/usr/local/libexec/sudo');
}
break;
@@ -66,17 +66,17 @@ function sudo_install() {
if (!is_array($config['installedpackages']['sudo']['config'][0]['row'])) {
$config['installedpackages']['sudo']['config'][0]['row'] = array(
0 => array(
- "username" => "user:root",
+ "username" => "user:root",
"runas" => "user:root",
"cmdlist" => "ALL"
),
1 => array(
- "username" => "user:admin",
+ "username" => "user:admin",
"runas" => "user:root",
"cmdlist" => "ALL"
),
2 => array(
- "username" => "group:admins",
+ "username" => "group:admins",
"runas" => "user:root",
"cmdlist" => "ALL"
)
@@ -196,7 +196,7 @@ This also forces the user to give full paths to executables, which they should b
*/
function sudo_validate_commands(&$input_errors) {
$idx = 0;
- while(isset($_POST["cmdlist{$idx}"])) {
+ while (isset($_POST["cmdlist{$idx}"])) {
$commands = $_POST["cmdlist" . $idx++];
if (strtoupper($commands) == "ALL") {
continue;
diff --git a/config/sudo/sudo.xml b/config/sudo/sudo.xml
index e9b4dcbb..6124a641 100644
--- a/config/sudo/sudo.xml
+++ b/config/sudo/sudo.xml
@@ -42,7 +42,7 @@
<description>Sudo Command Control</description>
<requirements>None</requirements>
<name>sudo</name>
- <version>0.2.6</version>
+ <version>0.2.7</version>
<title>Sudo - Shell Command Privilege Delegation Utility</title>
<include_file>/usr/local/pkg/sudo.inc</include_file>
<menu>
diff --git a/config/systempatches/patches.inc b/config/systempatches/patches.inc
index 60c9a391..f47324c4 100644
--- a/config/systempatches/patches.inc
+++ b/config/systempatches/patches.inc
@@ -55,10 +55,11 @@ function patch_commit($patch, $action, $test=false, $fulldetail=false) {
$full_patch_command = "{$patch_cmd} --directory={$directory} {$force} {$pathstrip} {$filename} {$check} {$direction} {$whitespace}";
conf_mount_rw();
patch_write($patch);
- if (!$fulldetail)
+ if (!$fulldetail) {
$output = (mwexec($full_patch_command, true) == 0);
- else
+ } else {
$output = $full_patch_command . "\n\n" . shell_exec($full_patch_command . ' 2>&1');
+ }
patch_erase($patch);
conf_mount_ro();
return $output;
@@ -158,8 +159,9 @@ function bootup_apply_patches() {
foreach ($a_patches as $patch) {
/* Skip the patch if it should not be automatically applied. */
- if (!isset($patch['autoapply']))
+ if (!isset($patch['autoapply'])) {
continue;
+ }
/* If the patch can be reverted it is already applied, so skip it. */
if (!patch_test_revert($patch)) {
/* Only attempt to apply if it can be applied. */
@@ -173,12 +175,15 @@ function bootup_apply_patches() {
function patch_add_shellcmd() {
global $config;
$a_earlyshellcmd = &$config['system']['earlyshellcmd'];
- if (!is_array($a_earlyshellcmd))
+ if (!is_array($a_earlyshellcmd)) {
$a_earlyshellcmd = array();
+ }
$found = false;
- foreach ($a_earlyshellcmd as $idx => $cmd)
- if (stristr($cmd, "apply_patches.php"))
+ foreach ($a_earlyshellcmd as $idx => $cmd) {
+ if (stristr($cmd, "apply_patches.php")) {
$found = true;
+ }
+ }
if (!$found) {
$a_earlyshellcmd[] = "/usr/local/bin/php -f /usr/local/bin/apply_patches.php";
write_config("System Patches package added a shellcmd");
@@ -188,8 +193,9 @@ function patch_add_shellcmd() {
function patch_remove_shellcmd() {
global $config;
$a_earlyshellcmd = &$config['system']['earlyshellcmd'];
- if (!is_array($a_earlyshellcmd))
+ if (!is_array($a_earlyshellcmd)) {
$a_earlyshellcmd = array();
+ }
$removed = false;
foreach ($a_earlyshellcmd as $idx => $cmd) {
if (stristr($cmd, "apply_patches.php")) {
@@ -197,8 +203,9 @@ function patch_remove_shellcmd() {
$removed = true;
}
}
- if ($removed)
+ if ($removed) {
write_config("System Patches package removed a shellcmd");
+ }
}
?>
diff --git a/config/systempatches/system_patches.php b/config/systempatches/system_patches.php
index 43c8c22b..feeee07e 100644
--- a/config/systempatches/system_patches.php
+++ b/config/systempatches/system_patches.php
@@ -41,14 +41,16 @@ require_once("functions.inc");
require_once("itemid.inc");
require_once("patches.inc");
-if (!is_array($config['installedpackages']['patches']['item']))
+if (!is_array($config['installedpackages']['patches']['item'])) {
$config['installedpackages']['patches']['item'] = array();
+}
$a_patches = &$config['installedpackages']['patches']['item'];
/* if a custom message has been passed along, lets process it */
-if ($_GET['savemsg'])
+if ($_GET['savemsg']) {
$savemsg = $_GET['savemsg'];
+}
if ($_POST) {
$pconfig = $_POST;
@@ -116,26 +118,31 @@ if (isset($_POST['del_x'])) {
/* copy all patches < $movebtn and not selected */
for ($i = 0; $i < $movebtn; $i++) {
- if (!in_array($i, $_POST['patch']))
+ if (!in_array($i, $_POST['patch'])) {
$a_patches_new[] = $a_patches[$i];
+ }
}
/* copy all selected patches */
for ($i = 0; $i < count($a_patches); $i++) {
- if ($i == $movebtn)
+ if ($i == $movebtn) {
continue;
- if (in_array($i, $_POST['patch']))
+ }
+ if (in_array($i, $_POST['patch'])) {
$a_patches_new[] = $a_patches[$i];
+ }
}
/* copy $movebtn patch */
- if ($movebtn < count($a_patches))
+ if ($movebtn < count($a_patches)) {
$a_patches_new[] = $a_patches[$movebtn];
+ }
/* copy all patches > $movebtn and not selected */
for ($i = $movebtn+1; $i < count($a_patches); $i++) {
- if (!in_array($i, $_POST['patch']))
+ if (!in_array($i, $_POST['patch'])) {
$a_patches_new[] = $a_patches[$i];
+ }
}
$a_patches = $a_patches_new;
write_config();
@@ -164,41 +171,47 @@ include("head.inc");
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system patches">
<tr><td><div id="mainarea">
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
-<tr><td colspan="8" align="center">
-<?php echo gettext("This page allows you to add patches, either from the official code repository or ones pasted in from e-mail or other sources."); ?>
-<br/><br/>
-<strong><?php echo gettext("Use with caution!"); ?></strong>
-<br/><br/>
+ <tr>
+ <td colspan="8" align="center">
+ <?php echo gettext("This page allows you to add patches, either from the official code repository or ones pasted in from e-mail or other sources."); ?>
+ <br/><br/>
+ <strong><?php echo gettext("Use with caution!"); ?></strong>
+ <br/><br/>
<?php if (!empty($fulldetail)): ?>
-</td></tr>
-<tr><td></td><td colspan="7" align="left">Output of full patch <?php echo $_GET['fulltest']; ?> test:
-<pre><?php echo $fulldetail; ?></pre>
-<a href="system_patches.php">Close</a><br/><br/>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="7" align="left">Output of full patch <?php echo $_GET['fulltest']; ?> test:
+ <pre><?php echo $fulldetail; ?></pre>
+ <a href="system_patches.php">Close</a><br/><br/>
<?php endif; ?>
-</td></tr>
-<tr id="frheader">
-<td width="5%" class="list">&nbsp;</td>
-<td width="5%" class="listhdrr"><?=gettext("Description");?></td>
-<td width="60%" class="listhdrr"><?=gettext("URL/ID");?></td>
-<td width="5%" class="listhdrr"><?=gettext("Fetch");?></td>
-<td width="5%" class="listhdrr"><?=gettext("Test");?></td>
-<td width="5%" class="listhdrr"><?=gettext("Apply");?></td>
-<td width="5%" class="listhdr"><?=gettext("Revert");?></td>
-<td width="5%" class="listhdr"><?=gettext("Auto Apply");?></td>
-<td width="5%" class="list">
-<table border="0" cellspacing="0" cellpadding="1" summary="buttons">
- <tr><td width="17">
- <?php if (count($a_patches) == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected patches");?>" border="0" alt="delete" />
- <?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected patches"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected patches?");?>')" />
- <?php endif; ?>
- </td>
- <td><a href="system_patches_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new patch"); ?>" alt="add" /></a></td>
+ </td>
+ </tr>
+ <tr id="frheader">
+ <td width="5%" class="list">&nbsp;</td>
+ <td width="5%" class="listhdrr"><?=gettext("Description");?></td>
+ <td width="60%" class="listhdrr"><?=gettext("URL/ID");?></td>
+ <td width="5%" class="listhdrr"><?=gettext("Fetch");?></td>
+ <td width="5%" class="listhdrr"><?=gettext("Test");?></td>
+ <td width="5%" class="listhdrr"><?=gettext("Apply");?></td>
+ <td width="5%" class="listhdr"><?=gettext("Revert");?></td>
+ <td width="5%" class="listhdr"><?=gettext("Auto Apply");?></td>
+ <td width="5%" class="list">
+ <table border="0" cellspacing="0" cellpadding="1" summary="buttons">
+ <tr>
+ <td width="17">
+ <?php if (count($a_patches) == 0): ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected patches");?>" border="0" alt="delete" />
+ <?php else: ?>
+ <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected patches"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected patches?");?>')" />
+ <?php endif; ?>
+ </td>
+ <td><a href="system_patches_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new patch"); ?>" alt="add" /></a></td>
+ </tr>
+ </table>
+ </td>
</tr>
-</table>
-</td>
-</tr>
<?php
$npatches = $i = 0;
@@ -208,83 +221,93 @@ foreach ($a_patches as $thispatch):
?>
<tr valign="top" id="fr<?=$npatches;?>">
- <td class="listt"><input type="checkbox" id="frc<?=$npatches;?>" name="patch[]" value="<?=$i;?>" onClick="fr_bgcolor('<?=$npatches;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" /></td>
- <td class="listlr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
- <?=$thispatch['descr'];?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
-
- <?php
- if (!empty($thispatch['location']))
- echo $thispatch['location'];
- elseif (!empty($thispatch['patch']))
- echo gettext("Saved Patch");
- ?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
- <?php if (empty($thispatch['patch'])): ?>
- <a href="system_patches.php?id=<?=$i;?>&amp;act=fetch"><?php echo gettext("Fetch"); ?></a>
- <?php elseif (!empty($thispatch['location'])): ?>
- <a href="system_patches.php?id=<?=$i;?>&amp;act=fetch"><?php echo gettext("Re-Fetch"); ?></a>
- <?php endif; ?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
- <?php if (!empty($thispatch['patch'])): ?>
- <a href="system_patches.php?id=<?=$i;?>&amp;act=test"><?php echo gettext("Test"); ?></a>
- <?php endif; ?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
- <?php if ($can_apply): ?>
- <a href="system_patches.php?id=<?=$i;?>&amp;act=apply"><?php echo gettext("Apply"); ?></a>
- <?php endif; ?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
- <?php if ($can_revert): ?>
- <a href="system_patches.php?id=<?=$i;?>&amp;act=revert"><?php echo gettext("Revert"); ?></a>
- <?php endif; ?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
- <?= isset($thispatch['autoapply']) ? "Yes" : "No" ?>
- </td>
- <td valign="middle" class="list" nowrap>
- <table border="0" cellspacing="0" cellpadding="1" summary="edit">
- <tr>
- <td><input onmouseover="fr_insline(<?=$npatches;?>, true)" onmouseout="fr_insline(<?=$npatches;?>, false)" name="move_<?=$i;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" title="<?=gettext("move selected patches before this patch");?>" height="17" type="image" width="17" border="0" /></td>
- <td><a href="system_patches_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" title="<?=gettext("edit patch"); ?>" alt="edit" /></a></td>
- </tr>
- <tr>
- <td align="center" valign="middle"><a href="system_patches.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this patch?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete patch");?>" alt="delete" /></a></td>
- <td></td>
- </tr>
- </table>
- </td></tr>
-<?php $i++; $npatches++; endforeach; ?>
- <tr>
- <td class="list" colspan="8"></td>
- <td class="list" valign="middle" nowrap>
- <table border="0" cellspacing="0" cellpadding="1" summary="edit">
- <tr>
- <td><?php if ($npatches == 0): ?><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected patches to end"); ?>" border="0" alt="move" /><?php else: ?><input name="move_<?=$i;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" width="17" height="17" title="<?=gettext("move selected patches to end");?>" border="0" alt="move" /><?php endif; ?></td>
+ <td class="listt"><input type="checkbox" id="frc<?=$npatches;?>" name="patch[]" value="<?=$i;?>" onClick="fr_bgcolor('<?=$npatches;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" /></td>
+ <td class="listlr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
+ <?=$thispatch['descr'];?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
+
+ <?php
+ if (!empty($thispatch['location'])) {
+ echo $thispatch['location'];
+ } elseif (!empty($thispatch['patch'])) {
+ echo gettext("Saved Patch");
+ }
+ ?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
+ <?php if (empty($thispatch['patch'])): ?>
+ <a href="system_patches.php?id=<?=$i;?>&amp;act=fetch"><?php echo gettext("Fetch"); ?></a>
+ <?php elseif (!empty($thispatch['location'])): ?>
+ <a href="system_patches.php?id=<?=$i;?>&amp;act=fetch"><?php echo gettext("Re-Fetch"); ?></a>
+ <?php endif; ?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
+ <?php if (!empty($thispatch['patch'])): ?>
+ <a href="system_patches.php?id=<?=$i;?>&amp;act=test"><?php echo gettext("Test"); ?></a>
+ <?php endif; ?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
+ <?php if ($can_apply): ?>
+ <a href="system_patches.php?id=<?=$i;?>&amp;act=apply"><?php echo gettext("Apply"); ?></a>
+ <?php endif; ?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
+ <?php if ($can_revert): ?>
+ <a href="system_patches.php?id=<?=$i;?>&amp;act=revert"><?php echo gettext("Revert"); ?></a>
+ <?php endif; ?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$npatches;?>)" id="frd<?=$npatches;?>" ondblclick="document.location='system_patches_edit.php?id=<?=$npatches;?>';">
+ <?= isset($thispatch['autoapply']) ? "Yes" : "No" ?>
+ </td>
+ <td valign="middle" class="list" nowrap>
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
+ <tr>
+ <td><input onmouseover="fr_insline(<?=$npatches;?>, true)" onmouseout="fr_insline(<?=$npatches;?>, false)" name="move_<?=$i;?>" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" title="<?=gettext("move selected patches before this patch");?>" height="17" type="image" width="17" border="0" /></td>
+ <td><a href="system_patches_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" title="<?=gettext("edit patch"); ?>" alt="edit" /></a></td>
+ </tr>
+ <tr>
+ <td align="center" valign="middle"><a href="system_patches.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this patch?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete patch");?>" alt="delete" /></a></td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
</tr>
+<?php
+ $i++;
+ $npatches++;
+endforeach;
+?>
<tr>
- <td width="17">
- <?php if (count($a_patches) == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected patches");?>" border="0" alt="delete" />
- <?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected patches"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected patches?");?>')" />
- <?php endif; ?>
- </td>
- <td><a href="system_patches_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new patch"); ?>" alt="add" /></a></td>
+ <td class="list" colspan="8"></td>
+ <td class="list" valign="middle" nowrap>
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
+ <tr>
+ <td><?php if ($npatches == 0): ?><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected patches to end"); ?>" border="0" alt="move" /><?php else: ?><input name="move_<?=$i;?>" type="image" src="/themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" width="17" height="17" title="<?=gettext("move selected patches to end");?>" border="0" alt="move" /><?php endif; ?></td>
+ </tr>
+ <tr>
+ <td width="17">
+ <?php if (count($a_patches) == 0): ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected patches");?>" border="0" alt="delete" />
+ <?php else: ?>
+ <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected patches"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected patches?");?>')" />
+ <?php endif; ?>
+ </td>
+ <td><a href="system_patches_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new patch"); ?>" alt="add" /></a></td>
+ </tr>
+ </table>
+ </td>
</tr>
- </table>
- </td>
+ <tr>
+ <td></td>
+ <td colspan="6">
+ <?php echo gettext("NOTE: Each patch is tested, and the appropriate action is shown. If neither 'Apply' or 'Revert' shows up, the patch cannot be used (check the pathstrip and whitespace options)."); ?>
+ <br/><br/>
+ <?php echo gettext("Use the 'Test' link to see if a patch can be applied or reverted. You can reorder patches so that higher patches apply later than lower patches."); ?>
+ </td>
+ <td></td>
</tr>
- <tr><td></td><td colspan="6">
- <?php echo gettext("NOTE: Each patch is tested, and the appropriate action is shown. If neither 'Apply' or 'Revert' shows up, the patch cannot be used (check the pathstrip and whitespace options)."); ?>
- <br/><br/>
- <?php echo gettext("Use the 'Test' link to see if a patch can be applied or reverted. You can reorder patches so that higher patches apply later than lower patches."); ?>
- </td><td></td></tr>
- </table>
+</table>
</div></td></tr>
</table>
</form>
diff --git a/config/systempatches/system_patches_edit.php b/config/systempatches/system_patches_edit.php
index 3e63038e..9e1f7a49 100644
--- a/config/systempatches/system_patches_edit.php
+++ b/config/systempatches/system_patches_edit.php
@@ -46,8 +46,9 @@ if (!is_array($config['installedpackages']['patches']['item'])) {
$a_patches = &$config['installedpackages']['patches']['item'];
$id = $_GET['id'];
-if (isset($_POST['id']))
+if (isset($_POST['id'])) {
$id = $_POST['id'];
+}
if (isset($_GET['dup'])) {
$id = $_GET['dup'];
@@ -69,8 +70,9 @@ if (isset($id) && $a_patches[$id]) {
$pconfig['ignorewhitespace'] = true;
}
-if (isset($_GET['dup']))
+if (isset($_GET['dup'])) {
unset($id);
+}
unset($input_errors);
@@ -87,10 +89,11 @@ if ($_POST) {
}
$pf_version=substr(trim(file_get_contents("/etc/version")),0,3);
- if ($pf_version < 2.1)
+ if ($pf_version < 2.1) {
$input_errors = eval('do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); return $input_errors;');
- else
+ } else {
do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
+ }
if (!empty($_POST['location']) && !is_commit_id($_POST['location']) && !is_URL($_POST['location'])) {
$input_errors[] = gettext("The supplied commit ID/URL appears to be invalid.");
@@ -111,10 +114,11 @@ if ($_POST) {
/* Strip DOS style carriage returns from textarea input */
$thispatch['patch'] = base64_encode(str_replace("\r", "", $_POST['patch']));
}
- if (is_github_url($thispatch['location']) && ($_POST['pathstrip'] == 0))
+ if (is_github_url($thispatch['location']) && ($_POST['pathstrip'] == 0)) {
$thispatch['pathstrip'] = 1;
- else
+ } else {
$thispatch['pathstrip'] = $_POST['pathstrip'];
+ }
$thispatch['basedir'] = empty($_POST['basedir']) ? "/" : $_POST['basedir'];
$thispatch['ignorewhitespace'] = isset($_POST['ignorewhitespace']);
$thispatch['autoapply'] = isset($_POST['autoapply']);
@@ -125,18 +129,20 @@ if ($_POST) {
}
// Update the patch entry now
- if (isset($id) && $a_patches[$id])
+ if (isset($id) && $a_patches[$id]) {
$a_patches[$id] = $thispatch;
- else {
- if (is_numeric($after))
+ } else {
+ if (is_numeric($after)) {
array_splice($a_patches, $after+1, 0, array($thispatch));
- else
+ } else {
$a_patches[] = $thispatch;
+ }
}
write_config();
- if ($thispatch['autoapply'])
+ if ($thispatch['autoapply']) {
patch_add_shellcmd();
+ }
header("Location: system_patches.php");
return;
}
diff --git a/config/systempatches/systempatches.xml b/config/systempatches/systempatches.xml
index 3cc1354a..ad7f5953 100644
--- a/config/systempatches/systempatches.xml
+++ b/config/systempatches/systempatches.xml
@@ -10,17 +10,18 @@
part of pfSense (http://www.pfSense.com)
Copyright (C) 2012 Jim Pingle
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.
+ 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.
+ 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
@@ -32,7 +33,7 @@
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.
- */
+*/
/* ========================================================================== */
]]>
</copyright>
@@ -40,7 +41,7 @@
<requirements>None</requirements>
<faq>Applies patches supplied by the user to the firewall.</faq>
<name>System Patches</name>
- <version>1.0.3</version>
+ <version>1.0.4</version>
<title>System: Patches</title>
<include_file>/usr/local/pkg/patches.inc</include_file>
<menu>
diff --git a/config/tftp2/tftp.inc b/config/tftp2/tftp.inc
index ea75e0d2..a2b7d1e3 100644
--- a/config/tftp2/tftp.inc
+++ b/config/tftp2/tftp.inc
@@ -1,23 +1,21 @@
<?php
-/* $Id$ */
/*
-/* ========================================================================== */
-/*
- tftp_inc.php
+ tftp.inc
+ part of pfSense (https://www.pfSense.org/)
Copyright (C) 2008 Mark J Crane
+ Copyright (C) 2011 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
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.
+ 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.
+ 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
@@ -30,98 +28,60 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
-
-function tftp_guid() {
- if (function_exists('com_create_guid')){
- return com_create_guid();
- }else{
- mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
- $charid = strtoupper(md5(uniqid(rand(), true)));
- $hyphen = chr(45);// "-"
- $uuid = chr(123)// "{"
- .substr($charid, 0, 8).$hyphen
- .substr($charid, 8, 4).$hyphen
- .substr($charid,12, 4).$hyphen
- .substr($charid,16, 4).$hyphen
- .substr($charid,20,12)
- .chr(125);// "}"
- return $uuid;
- }
-}
-
-function tftp_pkg_is_service_running($servicename) {
- exec("/bin/ps ax | awk '{ print $5 }'", $psout);
- array_shift($psout);
- foreach($psout as $line) {
- $ps[] = trim(array_pop(explode(' ', array_pop(explode('/', $line)))));
- }
- if(is_service_running($servicename, $ps) or is_process_running($servicename) ) {
- return true;
- }
- else {
- return false;
- }
-}
-
-function tftp_byte_convert( $bytes ) {
-
- if ($bytes<=0)
+function tftp_byte_convert($bytes) {
+ if ($bytes <= 0) {
return '0 Byte';
-
- $convention=1000; //[1000->10^x|1024->2^x]
- $s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
- $e=floor(log($bytes,$convention));
- return round($bytes/pow($convention,$e),2).' '.$s[$e];
+ }
+ $convention = 1000;
+ $s = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
+ $e = floor(log($bytes, $convention));
+ return round($bytes/pow($convention, $e), 2) . ' ' . $s[$e];
}
function tftp_install_command() {
global $config;
- conf_mount_rw();
-
- if (!is_dir('/tftpboot')) {
- // Create the directory
- exec("mkdir /tftpboot");
-
- //Set the directory permissions
- exec("chmod -R 777 /tftpboot");
- }
-
- if (!is_dir('/root/backup/')) {
- // Create the backup directory
- exec("mkdir /root/backup/");
- }
- // if backup file exists restore it
- $filename = 'tftp.bak.tgz';
+ $tftpdir = "/tftpboot";
+ $tftpbackup = "/root/backup/tftp.bak.tgz";
- //extract a specific directory to /usr/local/freeswitch
- if (file_exists('/root/backup/'.$filename)) {
- system('cd /; tar xvpfz /root/backup/tftp.bak.tgz');
- system('chmod -R 744 /tftpboot/*');
- unset($filename);
+ // Create the directories if required
+ conf_mount_rw();
+ safe_mkdir("{$tftpdir}", 0777);
+ safe_mkdir("/root/backup/");
+
+ // Restore backup if it exists
+ if (file_exists($tftpbackup)) {
+ system("/usr/bin/tar xvpfz {$tftpbackup} -C /");
+ system("/bin/chmod -R 0744 {$tftpdir}/*");
+ unset($tftpbackup);
}
+ conf_mount_ro();
}
function tftp_deinstall_command() {
-
- //exec("rm -R /tftpboot");
+ conf_mount_rw();
unlink_if_exists("/usr/local/etc/rc.d/tftp.sh");
unlink_if_exists("/tmp/pkg_mgr_tftp.log");
+ conf_mount_ro();
}
function tftp_generate_rules($type) {
global $config, $FilterIflist;
- if ($type != "nat")
+
+ if ($type != "nat") {
return;
+ }
+
// Open inetd.conf write handle
- $inetd_fd = fopen("/var/etc/inetd.conf","a+");
- /* add tftp daemon */
+ $inetd_fd = fopen("/var/etc/inetd.conf", "a+");
+ // Add tftp daemon
fwrite($inetd_fd, "tftp\t\tdgram\tudp\twait\t\troot\t/usr/libexec/tftpd\ttftpd /tftpboot\n");
- fclose($inetd_fd); // Close file handle
+ // Close file handle
+ fclose($inetd_fd);
if (!empty($config['installedpackages']['tftpd']['config'][0]['tftpdinterface'])) {
$tftpifs = explode(",", $config['installedpackages']['tftpd']['config'][0]['tftpdinterface']);
- foreach($tftpifs as $tftpif) {
+ foreach ($tftpifs as $tftpif) {
if ($FilterIflist[$tftpif]) {
log_error("Adding TFTP nat rules");
$natrules .= "rdr pass on {$FilterIflist[$tftpif]['if']} proto udp from any to {$FilterIflist[$tftpif]['ip']} port 69 -> 127.0.0.1 port 69\n";
diff --git a/config/tftp2/tftp.xml b/config/tftp2/tftp.xml
index 0a13548c..2a526a4c 100644
--- a/config/tftp2/tftp.xml
+++ b/config/tftp2/tftp.xml
@@ -2,44 +2,46 @@
<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd">
<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
<packagegui>
- <copyright>
- <![CDATA[
+ <copyright>
+ <![CDATA[
/* $Id$ */
-/* ========================================================================== */
+/* ====================================================================================== */
/*
- tftp.xml
- Copyright (C) 2008 Mark J Crane
- All rights reserved.
- */
-/* ========================================================================== */
+ tftp.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2008 Mark J Crane
+ Copyright (C) 2011 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
+ All rights reserved.
+*/
+/* ====================================================================================== */
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
+ 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.
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
- 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.
- */
-/* ========================================================================== */
- ]]>
- </copyright>
- <description></description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>tftp Settings</name>
<version>2.0</version>
<title>TFTP: Settings</title>
@@ -65,12 +67,10 @@
<configpath>installedpackages->$packagename</configpath>
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
- <chmod>0755</chmod>
<item>https://packages.pfsense.org/packages/config/tftp2/tftp.inc</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/www/</prefix>
- <chmod>0755</chmod>
<item>https://packages.pfsense.org/packages/config/tftp2/tftp_files.php</item>
</additional_files_needed>
<custom_php_install_command>
@@ -79,5 +79,7 @@
<custom_php_deinstall_command>
tftp_deinstall_command();
</custom_php_deinstall_command>
- <filter_rules_needed>tftp_generate_rules</filter_rules_needed>
-</packagegui> \ No newline at end of file
+ <filter_rules_needed>
+ tftp_generate_rules
+ </filter_rules_needed>
+</packagegui>
diff --git a/config/tftp2/tftp_files.php b/config/tftp2/tftp_files.php
index 3562cd9f..eebe4c5e 100644
--- a/config/tftp2/tftp_files.php
+++ b/config/tftp2/tftp_files.php
@@ -1,10 +1,11 @@
<?php
-/* $Id$ */
/*
- tftp_files.php
- Copyright (C) 2008 Mark J Crane
- All rights reserved.
-
+ tftp_files.php
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2008 Mark J Crane
+ Copyright (C) 2011 Jim Pingle
+ Copyright (C) 2015 ESF, LLC
+ All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -27,7 +28,6 @@
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("/usr/local/pkg/tftp.inc");
@@ -36,9 +36,9 @@ $backup_dir = "/root/backup";
$backup_filename = "tftp.bak.tgz";
$backup_path = "{$backup_dir}/{$backup_filename}";
$files_dir = "/tftpboot";
-
$filename = $_GET['filename'];
$download_dir = $files_dir;
+
if (($_GET['a'] == "download") && $_GET['t'] == "backup") {
conf_mount_rw();
$filename = $backup_filename;
@@ -46,6 +46,7 @@ if (($_GET['a'] == "download") && $_GET['t'] == "backup") {
system("tar -czC / -f {$backup_path} tftpboot");
conf_mount_ro();
}
+
if (($_GET['a'] == "download") && file_exists("{$download_dir}/{$filename}")) {
session_cache_limiter('public');
@@ -55,8 +56,10 @@ if (($_GET['a'] == "download") && file_exists("{$download_dir}/{$filename}")) {
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=\"{$filename}\"");
- header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
- header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
+ /* HTTP/1.1 */
+ header("Cache-Control: no-cache, must-revalidate");
+ /* Date in the past */
+ header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Content-Length: " . filesize("{$download_dir}/{$filename}"));
fpassthru($fd);
exit;
@@ -81,13 +84,15 @@ if ($_GET['a'] == "other") {
}
}
if ($_POST['submit'] == "Save") {
- if ($_POST['tftpdinterface']) {
+ if (($_POST['tftpdinterface']) != "") {
$config['installedpackages']['tftpd']['config'][0]['tftpdinterface'] = implode(",", $_POST['tftpdinterface']);
$pconfig['tftpdinterface'] = $_POST['tftpdinterface'];
write_config();
send_event("filter reload");
} else {
unset($config['installedpackages']['tftpd']['config'][0]['tftpdinterface']);
+ write_config();
+ send_event("filter reload");
}
}
@@ -122,7 +127,7 @@ include("head.inc");
<?php
$savemsg = $_GET["savemsg"];
if ($savemsg) {
- print_info_box($savemsg);
+ print_info_box($savemsg);
}
?>
@@ -141,78 +146,81 @@ if ($savemsg) {
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
- <td class="tabcont" >
+ <td class="tabcont">
<table width="100%" border="0" cellpadding="6" cellspacing="0">
-
<tr>
<td width="78%" class="vtable">
- <form action="tftp_files.php" method="POST" enctype="multipart/form-data" name="frmInterfaces" onSubmit="">
- <p><span class="vexpl"><strong>TFTP Daemon Interfaces<br/></strong>
+ <form action="tftp_files.php" method="post" enctype="multipart/form-data" name="frmInterfaces" onsubmit="">
+ <p><span class="vexpl"><strong>TFTP Daemon Interfaces</strong></span></p>
<?=gettext("Choose the interfaces where you want the TFTP daemon to accept connections.");?><br/><br/>
- <select name="tftpdinterface[]" multiple="true" class="formselect" size="3">
-<?php
+ <select name="tftpdinterface[]" multiple="multiple" class="formselect" size="3">
+ <?php
$ifdescs = get_configured_interface_with_descr();
- foreach ($ifdescs as $ifent => $ifdesc):
-?>
- <option value="<?=$ifent;?>" <?php if (in_array($ifent, $pconfig['tftpdinterface'])) echo "selected"; ?>><?=gettext($ifdesc);?></option>
-<?php endforeach; ?>
- </select>
- <br/><input name="submit" type="submit" class="button" id="save" value="Save">
+ foreach ($ifdescs as $ifent => $ifdesc) {
+ $selected = "";
+ if (in_array($ifent, $pconfig['tftpdinterface'])) {
+ $selected = " selected=\"selected\"";
+ }
+ echo "\t\t\t<option value=\"{$ifent}\"{$selected}>" . $ifdesc . "</option>\n";
+ }
+ ?>
+ </select><br />
+ <input name="submit" type="submit" class="button" id="save" value="Save" />
</form>
</td>
</tr>
<tr>
- <td><p><span class="vexpl"><span class="red"><strong>TFTP files<br />
- </strong></span>
- Trivial File Transport Protocol is a very simple file transfer
- protocol. Use the file upload to add files to the /tftpboot directory.
- Click on the file from the file list below to download it.
- </span></p></td>
+ <td>
+ <p><span class="vexpl"><span class="red"><strong>TFTP files</strong></span><br />
+ Trivial File Transport Protocol is a very simple file transfer protocol.<br />
+ Use the file upload to add files to the /tftpboot directory.<br />
+ Click on the file from the file list below to download it.<br />
+ </span></p>
+ </td>
</tr>
</table>
<br />
<div id="niftyOutter">
- <form action="tftp_files.php" method="POST" enctype="multipart/form-data" name="frmUpload" onSubmit="">
+ <form action="tftp_files.php" method="post" enctype="multipart/form-data" name="frmUpload" onsubmit="">
<table>
<tr>
<td align="right">File to upload:</td>
<td valign="top" class="label">
- <input name="ulfile" type="file" class="button" id="ulfile"></td>
+ <input name="ulfile" type="file" class="button" id="ulfile" />
+ </td>
</tr>
<tr>
<td valign="top">&nbsp;&nbsp;&nbsp;</td>
<td valign="top" class="label">
- <input name="submit" type="submit" class="button" id="upload" value="Upload"></td>
+ <input name="submit" type="submit" class="button" id="upload" value="Upload" />
+ </td>
</tr>
</table>
- </div>
</form>
-
- <br />
- <br />
-
- <?php
- echo "<table width='690' cellpadding='0' cellspacing='0' border='0'>\n";
- echo "<tr>\n";
- echo "<td width='80%'>\n";
- echo "<b>Backup / Restore</b><br />\n";
- echo "The 'backup' button will tar gzip /tftpboot/ to /root/backup/tftp.bak.tgz it then presents a file to download. \n";
- echo "If the backup file does not exist in /root/backup/tftp.bak.tgz then the 'restore' button will be hidden. \n";
- echo "Use Diagnostics->Command->File to upload: to browse to the file and then click on upload it now ready to be restored. \n";
- echo "<br /><br />\n";
- echo "</td>\n";
- echo "<td width='20%' valign='middle' align='right'>\n";
- echo " <input type='button' value='backup' onclick=\"document.location.href='tftp_files.php?a=download&t=backup';\" />\n";
- if (file_exists('/root/backup/tftp.bak.tgz')) {
- echo " <input type='button' value='restore' onclick=\"document.location.href='tftp_files.php?a=other&t=restore';\" />\n";
- }
- echo "</td>\n";
- echo "</tr>\n";
- echo "</table>\n";
- echo "<br /><br />\n\n";
- ?>
-
+ </div>
+ <br /><br />
+
+ <table width='690' cellpadding='0' cellspacing='0' border='0'>
+ <tr>
+ <td width='80%'>
+ <strong>Backup / Restore</strong><br />
+ The 'Backup' button compresses /tftpboot/ to /root/backup/tftp.bak.tgz; after that it presents the backup for download.<br />
+ If the backup file does not exist in /root/backup/tftp.bak.tgz then the 'Restore' button will be hidden.<br />
+ Use Diagnostics -> Command -> File to upload: to browse to the file and then click on upload.<br />
+ After that, backup will be ready to be restored.<br /><br />
+ </td>
+ <td width='20%' valign='middle' align='right'>
+ <input type="button" value="Backup" onclick="document.location.href='tftp_files.php?a=download&amp;t=backup'" />
+ <?php
+ if (file_exists('/root/backup/tftp.bak.tgz')) {
+ echo "<input type='button' value='Restore' onclick=\"document.location.href='tftp_files.php?a=other&amp;t=restore';\" />\n";
+ }
+ ?>
+ </td>
+ </tr>
+ </table>
+ <br /><br />
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
@@ -225,28 +233,33 @@ if ($savemsg) {
if ($handle = opendir('/tftpboot')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
- $tftp_filesize = filesize('/tftpboot/'.$file);
+ $tftp_filesize = filesize("/tftpboot/{$file}");
$tftp_filesize = tftp_byte_convert($tftp_filesize);
echo "<tr>\n";
- echo " <td class=\"listlr\" ondblclick=\"\">\n";
- echo " <a href=\"tftp_files.php?a=download&filename=".$file."\">\n";
- echo " $file";
- echo " </a>";
- echo " </td>\n";
- echo " <td class=\"listlr\" ondblclick=\"\">\n";
- echo date ("F d Y H:i:s", filemtime('/tftpboot/'.$file));
- echo " </td>\n";
- echo " <td class=\"listlr\" ondblclick=\"\">\n";
- echo " ".$tftp_filesize;
- echo " </td>\n";
- echo " <td valign=\"middle\" nowrap class=\"list\">\n";
- echo " <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">\n";
- echo " <tr>\n";
- echo " <td valign=\"middle\"><form method='POST' action='/edit.php' target='_blank'><input type='hidden' name='savetopath' value='/tftpboot/".$file."'><input type='hidden' name='submit' value='Load'><input type='image' src=\"/themes/".$g['theme']."/images/icons/icon_e.gif\" width=\"17\" height=\"17\" border=\"0\"></form></td>\n";
- echo " <td><a href=\"tftp_files.php?type=tftp&act=del&filename=".$file."\" onclick=\"return confirm('Do you really want to delete this file?')\"><img src=\"/themes/". $g['theme']."/images/icons/icon_x.gif\" width=\"17\" height=\"17\" border=\"0\"></a></td>\n";
- echo " </tr>\n";
- echo " </table>\n";
- echo " </td>\n";
+ echo "<td class=\"listlr\" ondblclick=\"\">";
+ echo "<a href=\"tftp_files.php?a=download&amp;filename={$file}\">{$file}</a>";
+ echo "</td>\n";
+ echo "<td class=\"listlr\" ondblclick=\"\">";
+ echo "\t\t" . date("F d Y H:i:s", filemtime('/tftpboot/'. $file));
+ echo "</td>\n";
+ echo "<td class=\"listlr\" ondblclick=\"\">";
+ echo "\t\t{$tftp_filesize}";
+ echo "</td>\n";
+ echo "<td valign=\"middle\" nowrap=\"nowrap\" class=\"list\">\n";
+ echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">\n";
+ echo "<tr>\n";
+ echo "<td valign=\"middle\">\n";
+ echo "\t<form method=\"post\" action=\"/edit.php\" target=\"_blank\"><input type=\"hidden\" name=\"savetopath\" value=\"/tftpboot/{$file}\" />\n";
+ echo "\t\t<input type=\"hidden\" name=\"submit\" value=\"Load\" />\n";
+ echo "\t\t<input type='image' src=\"/themes/" . $g['theme'] . "/images/icons/icon_e.gif\" />\n";
+ echo "\t</form>\n";
+ echo "</td>\n";
+ echo "<td><a href=\"tftp_files.php?type=tftp&amp;act=del&amp;filename={$file}\" onclick=\"return confirm('Do you really want to delete this file?')\">";
+ echo "<img src=\"/themes/" . $g['theme'] . "/images/icons/icon_x.gif\" alt=\"\" width=\"17\" height=\"17\" border=\"0\" /></a>";
+ echo "</td>\n";
+ echo "</tr>\n";
+ echo "</table>\n";
+ echo "</td>\n";
echo "</tr>\n";
}
}
diff --git a/config/vnstat2/vnstat2.inc b/config/vnstat2/vnstat2.inc
index ca8d869d..89a8b7c2 100644
--- a/config/vnstat2/vnstat2.inc
+++ b/config/vnstat2/vnstat2.inc
@@ -1,15 +1,42 @@
<?php
+/*
+ vnstat2.inc
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2010 PerryMason
+ Copyright (C) 2015 ESF, LLC
+ 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("util.inc");
function vnstat_install_deinstall() {
conf_mount_rw();
global $config;
// Remove Vnstat package and files
- exec("rm -d -R /usr/local/www/vnstat2");
- exec("rm -d -R /usr/local/www/vnstati");
- exec("rm -d -R /usr/local/pkg/vnstat2");
- exec("rm /usr/local/etc/vnstat.conf");
+ exec("/bin/rm -d -R /usr/local/www/vnstat2");
+ exec("/bin/rm -d -R /usr/local/www/vnstati");
+ exec("/bin/rm -d -R /usr/local/pkg/vnstat2");
+ exec("/bin/rm /usr/local/etc/vnstat.conf");
// Remove vnstat cron entry from config.xml
vnstat2_install_cron(false);
conf_mount_ro();
@@ -22,29 +49,29 @@ function vnstat2_install_cron($vnstat_cron_value) {
return;
}
$x=0;
- foreach($config['cron']['item'] as $item) {
+ foreach ($config['cron']['item'] as $item) {
if (strstr($item['command'], "/usr/local/pkg/vnstat2/vnstat2.sh")) {
$is_installed = true;
break;
}
$x++;
}
- switch($vnstat_cron_value) {
+ switch ($vnstat_cron_value) {
case true:
if (!$is_installed) {
$cron_item = array();
- $cron_item['minute'] = "*/1";
- $cron_item['hour'] = "*";
- $cron_item['mday'] = "*";
- $cron_item['month'] = "*";
- $cron_item['wday'] = "*";
- $cron_item['who'] = "root";
- $cron_item['command'] = "/usr/local/pkg/vnstat2/vnstat2.sh";
+ $cron_item['minute'] = "*/1";
+ $cron_item['hour'] = "*";
+ $cron_item['mday'] = "*";
+ $cron_item['month'] = "*";
+ $cron_item['wday'] = "*";
+ $cron_item['who'] = "root";
+ $cron_item['command'] = "/usr/local/pkg/vnstat2/vnstat2.sh";
$config['cron']['item'][] = $cron_item;
write_config();
configure_cron();
}
- break;
+ break;
case false:
if ($is_installed == true) {
if ($x > 0) {
@@ -53,7 +80,7 @@ function vnstat2_install_cron($vnstat_cron_value) {
}
configure_cron();
}
- break;
+ break;
}
}
@@ -61,14 +88,14 @@ function change_vnstat_conf() {
conf_mount_rw();
global $config;
$config['installedpackages']['vnstat2']['config'][0]['monthrotate'] = $_POST['monthrotate'];
- $config['installedpackages']['vnstat2']['config'][0]['vnstat_phpfrontend'] = $_POST['vnstat_phpfrontend'];
+ $config['installedpackages']['vnstat2']['config'][0]['vnstat_phpfrontend'] = $_POST['vnstat_phpfrontend'];
write_conf_f();
write_config();
if ($config['installedpackages']['vnstat2']['config'][0]['vnstat_phpfrontend'] == "on") {
vnstat_php_frontend();
} else {
- exec("[ -d /usr/local/www/vnstat2 ] && rm -d -R /usr/local/www/vnstat2");
+ exec("[ -d /usr/local/www/vnstat2 ] && /bin/rm -d -R /usr/local/www/vnstat2");
}
conf_mount_ro();
}
@@ -77,9 +104,9 @@ function write_conf_f() {
global $config;
$monthrotate = $config['installedpackages']['vnstat2']['config'][0]['monthrotate'];
- // ************ Write new vnstat.conf *****************
+ // Write new vnstat.conf
$vnstat_conf_file = <<<EOF
-# vnStat 1.10 config file
+# vnStat 1.12 config file
##
# location of the database directory
@@ -106,7 +133,7 @@ CRxD "-"
CTxD "-"
EOF;
- $hf2 = fopen("/usr/local/etc/vnstat.conf","w");
+ $hf2 = fopen("/usr/local/etc/vnstat.conf", "w");
if (!$hf2) {
log_error("could not open /usr/local/etc/vnstat.conf for writing");
exit;
@@ -124,11 +151,11 @@ function create_vnstati_image() {
$iface = $_POST['vnstat_interface'];
$ifaces_final = convert_friendly_interface_to_real_interface_name($iface);
$config['installedpackages']['vnstat2']['config'][0]['vnstat_interface'] = $ifaces_final;
- @mkdir($vnstat_tmp);
- exec("/usr/local/bin/vnstati -i ". escapeshellarg($ifaces_final) ." -vs -o {$vnstat_tmp}/newpicture1.png");
- exec("/usr/local/bin/vnstati -i ". escapeshellarg($ifaces_final) ." -m -o {$vnstat_tmp}/newpicture2.png");
- exec("/usr/local/bin/vnstati -i ". escapeshellarg($ifaces_final) ." -d -o {$vnstat_tmp}/newpicture3.png");
- exec("/usr/local/bin/vnstati -i ". escapeshellarg($ifaces_final) ." -t -o {$vnstat_tmp}/newpicture4.png");
+ safe_mkdir($vnstat_tmp);
+ exec("/usr/local/bin/vnstati -i " . escapeshellarg($ifaces_final) . " -vs -o {$vnstat_tmp}/newpicture1.png");
+ exec("/usr/local/bin/vnstati -i " . escapeshellarg($ifaces_final) . " -m -o {$vnstat_tmp}/newpicture2.png");
+ exec("/usr/local/bin/vnstati -i " . escapeshellarg($ifaces_final) . " -d -o {$vnstat_tmp}/newpicture3.png");
+ exec("/usr/local/bin/vnstati -i " . escapeshellarg($ifaces_final) . " -t -o {$vnstat_tmp}/newpicture4.png");
write_config();
conf_mount_ro();
}
@@ -136,7 +163,7 @@ function create_vnstati_image() {
function create_vnstat_output() {
conf_mount_rw();
global $config;
- $iface2 = $_POST['vnstat_interface2'];
+ $iface2 = $_POST['vnstat_interface2'];
$ifaces_final2 = convert_friendly_interface_to_real_interface_name($iface2);
$config['installedpackages']['vnstat2']['config'][0]['vnstat_interface2'] = $ifaces_final2;
write_config();
@@ -144,7 +171,7 @@ function create_vnstat_output() {
}
function vnstat_link_config() {
- // Check for pbi install and arch type then create symlinks
+ // Check for PBI install and arch type, then create symlinks
if (file_exists('/usr/pbi/vnstat-' . php_uname("m"))) {
$conf_path = "/usr/local/etc/vnstat.conf";
$pbi_conf_path = "/usr/pbi/vnstat-" . php_uname("m") . "/etc/vnstat.conf";
@@ -157,7 +184,7 @@ function vnstat_create_nic_dbs() {
global $config;
conf_mount_rw();
$vnstat_db_prefix = "/conf/vnstat";
- @mkdir($vnstat_db_prefix);
+ safe_mkdir($vnstat_db_prefix);
// Locate NICs and create associated databases
$array_of_real_nic_names = array();
@@ -189,9 +216,8 @@ function vnstat_install_config() {
if (is_dir("/usr/local/pkg/vnstat2/vnstat")) {
@rename("/usr/local/pkg/vnstat2/vnstat", $vnstat_db_prefix);
}
- if (!is_dir($vnstat_db_prefix)) {
- @mkdir($vnstat_db_prefix);
- }
+ safe_mkdir($vnstat_db_prefix);
+
vnstat_link_config();
// Add MonthRotate value to config.xml and write /usr/local/etc/vnstat.conf
if ($config['installedpackages']['vnstat2']['config'][0]['monthrotate'] == "") {
@@ -212,9 +238,9 @@ function vnstat_php_frontend() {
global $config;
// Copy vnstat_php_frontend to www
exec("/bin/cp -a /usr/local/pkg/vnstat2/vnstat_php_frontend/. /usr/local/www/vnstat2/");
- // Find information to be writing in config.php
+ // Find information to be written in config.php
// $iface_list_array_items
- exec("ls /conf/vnstat/ | grep -v '\.'", $vnstat_nic_in);
+ exec("/bin/ls /conf/vnstat/ | /usr/bin/grep -v '\.'", $vnstat_nic_in);
$iface_list_array_items = implode("', '", $vnstat_nic_in);
$iface_list_array = "\$iface_list = array('$iface_list_array_items');";
// $iface_title_array_items
@@ -235,8 +261,8 @@ function vnstat_php_frontend() {
}
}
$iface_title_array = implode($iface_title_array_items2);
- // php in php static items
- // added to new items for the front end version 1.5.1
+ // PHP in static items
+ // Added to new items for the front end version 1.5.1
$locale = "\$locale = 'en_US.UTF-8';";
$language = "\$language = 'en';";
$vnstat_bin2 = "\$vnstat_bin = '/usr/local/bin/vnstat';";
@@ -245,7 +271,7 @@ function vnstat_php_frontend() {
$colorscheme2 = "\$colorscheme['light'] = array(";
$colorscheme3 = "\$colorscheme['red'] = array(";
$colorscheme4 = "\$colorscheme['pfSense'] = array(";
- // ************ Write new config.php ******************
+ // Write new config.php
$config_file = <<<EOF
<?php
//
@@ -320,7 +346,7 @@ function vnstat_php_frontend() {
?>
EOF;
- $hf = fopen("/usr/local/www/vnstat2/config.php","w");
+ $hf = fopen("/usr/local/www/vnstat2/config.php", "w");
if (!$hf) {
log_error("could not open /usr/local/www/vnstat2/config.php for writing");
exit;
diff --git a/config/vnstat2/vnstat2.xml b/config/vnstat2/vnstat2.xml
index f696850a..7e65d465 100644
--- a/config/vnstat2/vnstat2.xml
+++ b/config/vnstat2/vnstat2.xml
@@ -1,19 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
-<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
- <copyright></copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ====================================================================================== */
+/*
+ vnstat2.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 PerryMason
+ Copyright (C) 2015 ESF, LLC
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>vnstat2</name>
- <version>11.2,3</version>
+ <version>1.12.5</version>
<title>Vnstat2</title>
<aftersaveredirect>/pkg_edit.php?xml=vnstat2.xml&amp;id=0</aftersaveredirect>
<include_file>/usr/local/pkg/vnstat2/vnstat2.inc</include_file>
<menu>
<name>Vnstat2</name>
- <tooltiptext></tooltiptext>
<section>Status</section>
<url>/pkg_edit.php?xml=vnstat2.xml&amp;id=0</url>
</menu>
@@ -42,17 +76,14 @@
</tabs>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat2.inc</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstati.xml</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstatoutput.xml</item>
</additional_files_needed>
<additional_files_needed>
@@ -62,137 +93,110 @@
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/www/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/www/diag_vnstat.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/www/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/www/diag_vnstat2.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/www/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/www/vnstat2_img.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/www/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/www/vnstati.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/lang/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/lang/cs.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/lang/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/lang/en.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/lang/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/lang/nl.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/dark/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/dark/style.css</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/dark/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/dark/theme.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/espresso/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/espresso/style.css</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/espresso/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/espresso/theme.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/light/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/light/style.css</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/light/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/light/theme.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/pfSense/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/pfSense/style.css</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/pfSense/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/pfSense/theme.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/red/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/red/style.css</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/themes/red/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/themes/red/theme.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/config.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/COPYING</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/graph.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/graph_svg.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/index.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/localize.php</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/README</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/vera_copyright.txt</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/VeraBd.ttf</item>
</additional_files_needed>
<additional_files_needed>
<prefix>/usr/local/pkg/vnstat2/vnstat_php_frontend/</prefix>
- <chmod>0644</chmod>
<item>https://packages.pfsense.org/packages/config/vnstat2/vnstat_php_frontend/vnstat.php</item>
</additional_files_needed>
<fields>
@@ -235,14 +239,13 @@
</options>
</field>
<field>
- <description>Enable vnstat php frontend (Note that no login will be needed)</description>
- <fielddescr>Enable php frontend for vnstat</fielddescr>
+ <description>Enable vnstat PHP frontend</description>
+ <fielddescr>Enable PHP frontend for vnstat. (Note that no login will be needed.)</fielddescr>
<fieldname>vnstat_phpfrontend</fieldname>
<type>checkbox</type>
</field>
</fields>
<custom_add_php_command>change_vnstat_conf();</custom_add_php_command>
- <custom_php_resync_config_command></custom_php_resync_config_command>
<custom_php_install_command>vnstat_install_config();</custom_php_install_command>
<custom_php_deinstall_command>vnstat_install_deinstall();</custom_php_deinstall_command>
</packagegui>
diff --git a/config/vnstat2/vnstati.xml b/config/vnstat2/vnstati.xml
index 84a104dd..b395e65f 100644
--- a/config/vnstat2/vnstati.xml
+++ b/config/vnstat2/vnstati.xml
@@ -1,19 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
-<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
- <copyright></copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ====================================================================================== */
+/*
+ vnstati.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2010 PerryMason
+ Copyright (C) 2015 ESF, LLC
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>vnstat2</name>
- <version>1.0</version>
+ <version>1.12.5</version>
<title>Vnstat2</title>
<aftersaveredirect>/vnstati.php</aftersaveredirect>
<include_file>/usr/local/pkg/vnstat2/vnstat2.inc</include_file>
<menu>
<name>vnstat2</name>
- <tooltiptext></tooltiptext>
<section>Status</section>
<url>/pkg_edit.php?xml=vnstat2.xml&amp;id=0</url>
</menu>
@@ -48,9 +82,7 @@
<type>interfaces_selection</type>
</field>
</fields>
- <custom_php_global_functions></custom_php_global_functions>
<custom_add_php_command>create_vnstati_image();</custom_add_php_command>
- <custom_php_resync_config_command></custom_php_resync_config_command>
<custom_php_install_command>vnstat_install_config();</custom_php_install_command>
<custom_php_deinstall_command>vnstat_install_deinstall();</custom_php_deinstall_command>
</packagegui>
diff --git a/config/vnstat2/vnstatoutput.xml b/config/vnstat2/vnstatoutput.xml
index 5062be1f..297c171a 100644
--- a/config/vnstat2/vnstatoutput.xml
+++ b/config/vnstat2/vnstatoutput.xml
@@ -1,19 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
-<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
- <copyright></copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ====================================================================================== */
+/*
+ vnstatoutput.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 PerryMason
+ Copyright (C) 2015 ESF, LLC
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>vnstat2</name>
- <version>1.0</version>
+ <version>1.12.5</version>
<title>Vnstat2</title>
<aftersaveredirect>/diag_vnstat2.php</aftersaveredirect>
<include_file>/usr/local/pkg/vnstat2/vnstat2.inc</include_file>
<menu>
<name>vnstat2</name>
- <tooltiptext></tooltiptext>
<section>Status</section>
<url>/pkg_edit.php?xml=vnstat2.xml&amp;id=0</url>
</menu>
@@ -48,9 +82,7 @@
<type>interfaces_selection</type>
</field>
</fields>
- <custom_php_global_functions></custom_php_global_functions>
<custom_add_php_command>create_vnstat_output();</custom_add_php_command>
- <custom_php_resync_config_command></custom_php_resync_config_command>
<custom_php_install_command>vnstat_install_config();</custom_php_install_command>
<custom_php_deinstall_command>vnstat_install_deinstall();</custom_php_deinstall_command>
</packagegui>
diff --git a/config/vnstat2/www/diag_vnstat.php b/config/vnstat2/www/diag_vnstat.php
index 5e6524c7..e5014120 100644
--- a/config/vnstat2/www/diag_vnstat.php
+++ b/config/vnstat2/www/diag_vnstat.php
@@ -1,8 +1,9 @@
<?php
-/* $Id$ */
/*
- diag_pf_info.php
- Copyright (C) 2010 Scott Ullrich
+ diag_vnstat.php
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 PerryMason
+ Copyright (C) 2015 ESF, LLC
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -26,26 +27,10 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
-
-/*
- pfSense_BUILDER_BINARIES: /usr/bin/top
- pfSense_MODULE: system
-*/
-
-##|+PRIV
-##|*IDENT=page-diag-system-activity
-##|*NAME=Diagnostics: System Activity
-##|*DESCR=Allows access to the 'Diagnostics: System Activity' page
-##|*MATCH=diag_system_activity*
-##|-PRIV
-
-require("guiconfig.inc");
-
-$pf_version=substr(trim(file_get_contents("/etc/version")),0,3);
-
-$pgtitle = gettext("Vnstat2 summary ");
+require_once("guiconfig.inc");
+$pgtitle = gettext("Vnstat2 summary");
if ($_REQUEST['getactivity']) {
- $text = `vnstat`;
+ $text = shell_exec("/usr/local/bin/vnstat");
$text .= "<p/>";
echo $text;
exit;
@@ -55,8 +40,8 @@ include("head.inc");
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-
<script type="text/javascript">
+//<![CDATA[
function getcpuactivity() {
var url = "/diag_vnstat.php";
var pars = 'getactivity=yes';
@@ -69,37 +54,36 @@ include("head.inc");
});
}
function activitycallback(transport) {
- $('cpuactivitydiv').innerHTML = '<font face="Courier"><font size="2"><b><pre>' + transport.responseText + '</pre></font>';
- setTimeout('getcpuactivity()', 2000);
+ $('cpuactivitydiv').innerHTML = '<font face="Courier"><font size="2"><b><pre>' + transport.responseText + '</pre></font>';
+ setTimeout('getcpuactivity()', 2000);
}
- setTimeout('getcpuactivity()', 5000);
+ setTimeout('getcpuactivity()', 5000);
+//]]>
</script>
<div id='maincontent'>
<?php
- include("fbegin.inc");
- if ($pf_version < 2.0)
- echo "<p class=\"pgtitle\">{$pgtitle}</p>";
- echo "<a href=$myurl/pkg_edit.php?xml=vnstatoutput.xml&id=0>Go Back</a><br />";
+ include("fbegin.inc");
+
if ($savemsg) {
echo "<div id='savemsg'>";
print_info_box($savemsg);
- echo "</div>";
+ echo "</div>";
}
- if ($input_errors)
+ if ($input_errors) {
print_input_errors($input_errors);
+ }
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<table id="backuptable" class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0">
<tr>
<td>
- <center>
<table>
<tr>
<td>
<div name='cpuactivitydiv' id='cpuactivitydiv'>
- <b><?=gettext("Gathering vnstat information, please wait...");?>
+ <strong><?=gettext("Gathering vnstat information, please wait...");?></strong>
</div>
</td>
</tr>
@@ -107,7 +91,6 @@ include("head.inc");
</td>
</tr>
</table>
- </div>
</td>
</tr>
</table>
diff --git a/config/vnstat2/www/diag_vnstat2.php b/config/vnstat2/www/diag_vnstat2.php
index 504fd534..2153cc18 100644
--- a/config/vnstat2/www/diag_vnstat2.php
+++ b/config/vnstat2/www/diag_vnstat2.php
@@ -1,8 +1,9 @@
<?php
-/* $Id$ */
/*
- diag_system_pftop.php
- Copyright (C) 2008-2009 Scott Ullrich
+ diag_vnstat2.php
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 PerryMason
+ Copyright (C) 2015 ESF, LLC
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -26,24 +27,10 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
-
-/*
- pfSense_MODULE: filter
-*/
-
-##|+PRIV
-##|*IDENT=page-diag-system-activity
-##|*NAME=Diagnostics: System Activity
-##|*DESCR=Allows access to the 'Diagnostics: System Activity' page
-##|*MATCH=diag_system_pftop*
-##|-PRIV
-
-require("guiconfig.inc");
+require_once("guiconfig.inc");
global $config;
$aaaa = $config['installedpackages']['vnstat2']['config'][0]['vnstat_interface2'];
$bbbb = convert_real_interface_to_friendly_descr($aaaa);
-
-$pf_version=substr(trim(file_get_contents("/etc/version")),0,3);
$pgtitle = gettext("Vnstat2 info for $bbbb ($aaaa)");
if ($_REQUEST['getactivity']) {
@@ -51,9 +38,9 @@ if ($_REQUEST['getactivity']) {
$sorttype = escapeshellarg($_REQUEST['sorttype']);
} else {
$sorttype = gettext("-h");
+ $text = shell_exec("/usr/local/bin/vnstat -i {$aaaa} {$sorttype}");
+ echo $text;
}
- $text = `vnstat -i $aaaa {$sorttype}`;
- echo $text;
exit;
}
@@ -69,6 +56,7 @@ if ($_REQUEST['sorttype']) {
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<form method="post" action="diag_vnstat2.php">
<script type="text/javascript">
+//<![CDATA[
function getcpuactivity() {
var url = "/diag_vnstat2.php";
var pars = 'getactivity=yes&sorttype=' + $('sorttype').value;
@@ -81,22 +69,19 @@ if ($_REQUEST['sorttype']) {
});
}
function activitycallback(transport) {
- $('cpuactivitydiv').innerHTML = '<font face="Courier"><font size="2"><b><pre>' + transport.responseText + '</pre></font>';
- setTimeout('getcpuactivity()', 2500);
+ $('cpuactivitydiv').innerHTML = '<font face="Courier"><font size="2"><b><pre>' + transport.responseText + '</pre></font>';
+ setTimeout('getcpuactivity()', 2500);
}
- setTimeout('getcpuactivity()', 1000);
+ setTimeout('getcpuactivity()', 1000);
+//]]>
</script>
<div id='maincontent'>
<?php
- include("fbegin.inc");
- if ($pf_version < 2.0) {
- echo "<p class=\"pgtitle\">{$pgtitle}</p>";
- }
- echo "<a href=$myurl/pkg_edit.php?xml=vnstatoutput.xml&id=0>Go Back</a><br />";
+ include("fbegin.inc");
if ($savemsg) {
echo "<div id='savemsg'>";
print_info_box($savemsg);
- echo "</div>";
+ echo "</div>";
}
if ($input_errors) {
print_input_errors($input_errors);
@@ -104,7 +89,7 @@ if ($_REQUEST['sorttype']) {
?>
<form method="post">
<?=gettext("Sort type:"); ?>
- <select name='sorttype' id='sorttype' onChange='this.form.submit();'>
+ <select name='sorttype' id='sorttype' onchange='this.form.submit();'>
<option value='<?=$sorttype?>'><?=$sorttype?></option>
<option value='-h'><?=gettext("Show traffic for the last 24 hours.");?></option>
<option value='-d'><?=gettext("Show traffic for days.");?></option>
@@ -113,19 +98,18 @@ if ($_REQUEST['sorttype']) {
<option value='-tr'><?=gettext("Calculate 5sec. of traffic.");?></option>
<option value='-w'><?=gettext("Show traffic for 7 days, current and previous week.");?></option>
</select>
- <p/>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <p />
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<table id="backuptable" class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0">
<tr>
<td>
- <center>
<table>
<tr>
<td>
<div name='cpuactivitydiv' id='cpuactivitydiv'>
- <b><?=gettext("Gathering vnstat activity, please wait...");?>
+ <strong><?=gettext("Gathering vnstat activity, please wait...");?></strong>
</div>
</td>
</tr>
@@ -133,7 +117,6 @@ if ($_REQUEST['sorttype']) {
</td>
</tr>
</table>
- </div>
</td>
</tr>
</table>
diff --git a/config/vnstat2/www/vnstat2_img.php b/config/vnstat2/www/vnstat2_img.php
index a83c3b06..fce29a4c 100644
--- a/config/vnstat2/www/vnstat2_img.php
+++ b/config/vnstat2/www/vnstat2_img.php
@@ -1,4 +1,32 @@
<?php
+/*
+ vnstat2_img.php
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 PerryMason
+ Copyright (C) 2015 ESF, LLC
+ 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");
$image = basename($_GET['image']);
header("Content-type: image/png");
diff --git a/config/vnstat2/www/vnstati.php b/config/vnstat2/www/vnstati.php
index 01eca208..d5f8d9bf 100644
--- a/config/vnstat2/www/vnstati.php
+++ b/config/vnstat2/www/vnstati.php
@@ -1,16 +1,45 @@
<?php
+/*
+ vnstati.php
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 PerryMason
+ Copyright (C) 2015 ESF, LLC
+ 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");
global $config;
include("head.inc");
+echo '<body link="#0000CC" vlink="#0000CC" alink="#0000CC">';
include("fbegin.inc");
$aaaa = $config['installedpackages']['vnstat2']['config'][0]['vnstat_interface'];
$cccc = convert_real_interface_to_friendly_descr($aaaa);
$pgtitle = gettext("Vnstati info for $cccc ($aaaa)");
-echo "<a href=$myurl/pkg_edit.php?xml=vnstati.xml&id=0>Go Back</a><br />";
-echo "<center><p class=\"pgtitle\">{$pgtitle}</p>";
?>
-<center><img src="vnstat2_img.php?image=newpicture1.png" style="border:1px solid black; center;"><br />
-<center><img src="vnstat2_img.php?image=newpicture2.png" style="border:1px solid black; center;"><br />
-<center><img src="vnstat2_img.php?image=newpicture3.png" style="border:1px solid black; center;"><br />
-<center><img src="vnstat2_img.php?image=newpicture4.png" style="border:1px solid black; center;"><br />
+<p style="text-align: center"><img src="vnstat2_img.php?image=newpicture1.png" alt="" style="border:1px solid black; center;" /></p>
+<p style="text-align: center"><img src="vnstat2_img.php?image=newpicture2.png" alt="" style="border:1px solid black; center;" /></p>
+<p style="text-align: center"><img src="vnstat2_img.php?image=newpicture3.png" alt="" style="border:1px solid black; center;" /></p>
+<p style="text-align: center"><img src="vnstat2_img.php?image=newpicture4.png" alt="" style="border:1px solid black; center;" /></p>
<?php include("fend.inc"); ?>
+</body>
+</html>
diff --git a/config/widentd/widentd.xml b/config/widentd/widentd.xml
index ca73d436..27a8ffe8 100644
--- a/config/widentd/widentd.xml
+++ b/config/widentd/widentd.xml
@@ -1,58 +1,54 @@
<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd">
-<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
+<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
<packagegui>
- <copyright>
- <![CDATA[
+ <copyright>
+ <![CDATA[
/* $Id$ */
-/* ========================================================================== */
+/* ====================================================================================== */
/*
- authng.xml
- part of pfSense (http://www.pfSense.com)
- Copyright (C) 2007 to whom it may belong
- All rights reserved.
-
- Based on m0n0wall (http://m0n0.ch/wall)
- Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
- */
-/* ========================================================================== */
+ widentd.xml
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2009 Bill Marquette
+ Copyright (C) 2015 ESF, LLC
+ All rights reserved.
+*/
+/* ====================================================================================== */
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
+ 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.
- 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.
- 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.
- */
-/* ========================================================================== */
- ]]>
- </copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
+ 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.
+*/
+/* ====================================================================================== */
+ ]]>
+ </copyright>
<name>widentd</name>
- <version>1.03_1</version>
+ <version>1.0.4</version>
<title>Services: widentd</title>
<menu>
<name>widentd</name>
<tooltiptext>Modify widentd settings.</tooltiptext>
<section>Services</section>
- <url>pkg_edit.php?xml=widentd.xml&amp;id=0</url>
+ <url>pkg_edit.php?xml=widentd.xml&amp;id=0</url>
</menu>
<service>
<name>widentd</name>
@@ -62,61 +58,114 @@
<configpath>installedpackages->package->$packagename->configuration->settings</configpath>
<fields>
<field>
- <fielddescr>Listening interface</fielddescr>
- <fieldname>interface</fieldname>
- <description>Enter the desired listening interface here.</description>
- <type>interfaces_selection</type>
+ <fielddescr>Enable widentd daemon</fielddescr>
+ <fieldname>enable</fieldname>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Listening interface</fielddescr>
+ <fieldname>interface</fieldname>
+ <description>
+ <![CDATA[
+ Enter the desired listening interface here.<br />
+ (Default: WAN)
+ ]]>
+ </description>
+ <type>interfaces_selection</type>
+ <default_value>wan</default_value>
+ <required/>
</field>
<field>
- <fielddescr>Username</fielddescr>
- <fieldname>username</fieldname>
- <description>Enter the username you'd like displayed via widentd.</description>
- <type>input</type>
+ <fielddescr>Username</fielddescr>
+ <fieldname>username</fieldname>
+ <description>
+ <![CDATA[
+ Enter the username you'd like displayed via widentd. Allowed characters: [a-zA-Z] and "." only.<br />
+ (Defaults to 'user' if left empty.)
+ ]]>
+ </description>
+ <type>input</type>
</field>
<field>
- <fielddescr>System name</fielddescr>
- <fieldname>sysname</fieldname>
- <description>Enter the system name you'd like displayed via widentd</description>
- <type>input</type>
- <value>pfSense</value>
+ <fielddescr>System name</fielddescr>
+ <fieldname>sysname</fieldname>
+ <description>
+ <![CDATA[
+ Enter the system name you'd like displayed via widentd. Allowed characters: [a-zA-Z] only.<br />
+ (Defaults to 'UNIX' if left empty.)
+ ]]>
+ </description>
+ <type>input</type>
</field>
- </fields>
+ </fields>
<custom_php_global_functions>
+ <![CDATA[
function sync_package_widentd() {
conf_mount_rw();
config_lock();
global $config;
- if (!isset($config['installedpackages']['widentd']['config'][0]['interface'])) {
- $config['installedpackages']['widentd']['config'][0]['interface'] = 'WAN';
- }
- if (!isset($config['installedpackages']['widentd']['config'][0]['username'])) {
- $config['installedpackages']['widentd']['config'][0]['username'] = 'user';
- }
- if (!isset($config['installedpackages']['widentd']['config'][0]['sysname'])) {
- $config['installedpackages']['widentd']['config'][0]['sysname'] = 'UNIX';
- }
+
+ /* Write widentd.sh */
$int = convert_friendly_interface_to_real_interface_name($config['installedpackages']['widentd']['config'][0]['interface']);
$ip = find_interface_ip($int);
- $user = $config['installedpackages']['widentd']['config'][0]['username'];
- $system = $config['installedpackages']['widentd']['config'][0]['sysname'];
+ $user = $config['installedpackages']['widentd']['config'][0]['username'] ?: 'user';
+ $system = $config['installedpackages']['widentd']['config'][0]['sysname'] ?: 'UNIX';
$start = "/usr/local/sbin/widentd -u {$user} -o {$system} -i {$ip}";
$stop = "/usr/bin/killall widentd";
write_rcfile(array(
"file" => "widentd.sh",
"start" => $start,
- "stop" => $stop
+ "stop" => $stop
)
);
- restart_service("widentd");
- conf_mount_ro();
+
+ /* If the service is (being) disabled, stop it (if running) and do nothing else */
+ if (!($config['installedpackages']['widentd']['config'][0][enable])) {
+ if (is_process_running("widentd")) {
+ stop_service("widentd");
+ }
+ return;
+ } else {
+ restart_service("widentd");
+ }
config_unlock();
+ conf_mount_ro();
}
+
+
+ function validate_input_widentd($post, &$input_errors) {
+ /* Only allow ^[a-zA-Z\.]+$ otherwise the daemon will not start; see widentd manpage */
+ if (($post['username'] != "") && !preg_match("/^[a-zA-Z\.]+$/", $post['username'])) {
+ $input_errors[] = 'Username may only contain uppercase and lowercase letters [a-zA-Z] and "." character.';
+ }
+
+ /* Technically, ^[A-Z][A-Z0-9\-.\/]+[A-Z0-9]$ should be valid characters here
+ https://www.iana.org/assignments/operating-system-names/operating-system-names.xhtml
+ However this is not supported by widentd; the service will not start.
+ */
+ if (($post['sysname'] != "") && !preg_match("/^[a-zA-Z]+$/", $post['sysname'])) {
+ $input_errors[] .= 'System name may only contain uppercase and lowercase letters [a-zA-Z].';
+ }
+
+ /* Check for IPv6-only interfaces */
+ $int = convert_friendly_interface_to_real_interface_name($post['interface']);
+ $ip = find_interface_ip($int);
+ if (!is_ipaddrv4($ip)) {
+ $input_errors[] .= 'The selected interface has no IPv4 configured. Widentd does not support IPv6.';
+ }
+ }
+ ]]>
</custom_php_global_functions>
<custom_add_php_command>
sync_package_widentd();
</custom_add_php_command>
+ <custom_php_resync_config_command>
+ sync_package_widentd();
+ </custom_php_resync_config_command>
<custom_php_install_command>
unlink_if_exists("/usr/local/etc/rc.d/widentd.sh");
</custom_php_install_command>
+ <custom_php_validation_command>
+ validate_input_widentd($_POST, $input_errors);
+ </custom_php_validation_command>
</packagegui>
-
diff --git a/pkg_config.10.xml b/pkg_config.10.xml
index 11fa3c12..7c9ce26c 100644
--- a/pkg_config.10.xml
+++ b/pkg_config.10.xml
@@ -32,7 +32,11 @@
<package>
<name>Asterisk</name>
<pkginfolink>https://forum.pfsense.org/index.php/topic,47210.0.html</pkginfolink>
- <descr><![CDATA[Asterisk is an open source framework for building communications applications.<br />Asterisk turns an ordinary computer into a communications server.]]></descr>
+ <descr><![CDATA[
+ Asterisk is an open source framework for building communications applications.<br />
+ Asterisk turns an ordinary computer into a communications server.
+ ]]>
+ </descr>
<website>http://www.asterisk.org/</website>
<category>Services</category>
<version>0.3.1</version>
@@ -54,7 +58,7 @@
<package>
<name>bind</name>
<!-- <pkginfolink>https://doc.pfsense.org/index.php/bind</pkginfolink> -->
- <descr><![CDATA[The most widely used name server software]]></descr>
+ <descr>The most widely used name server software.</descr>
<website>http://www.isc.org/downloads/BIND/</website>
<category>Services</category>
<version>0.3.9</version>
@@ -74,12 +78,11 @@
</package>
<package>
<name>Filer</name>
- <website/>
<descr>Allows you to create and overwrite files from the GUI.</descr>
<category>File Management</category>
<pkginfolink>https://doc.pfsense.org/index.php/Filer_package</pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/filer/filer.xml</config_file>
- <version>0.60.3</version>
+ <version>0.60.4</version>
<status>Beta</status>
<required_version>2.2</required_version>
<maintainer>bscholer@cshl.edu</maintainer>
@@ -88,8 +91,7 @@
</package>
<package>
<name>Strikeback</name>
- <descr>Detect port scans with iplog and strikeback</descr>
- <website/>
+ <descr>Detect port scans with iplog and strike back.</descr>
<pkginfolink>https://forum.pfsense.org/index.php/topic,37225.0.html</pkginfolink>
<category>Services</category>
<version>0.1</version>
@@ -104,8 +106,7 @@
<package>
<name>File Manager</name>
<internal_name>File_Manager</internal_name>
- <website/>
- <descr>PHP File Manager</descr>
+ <descr>PHP File Manager.</descr>
<category>Diagnostics</category>
<pkginfolink>https://forum.pfsense.org/index.php/topic,26974.0.html</pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/filemgr/filemgr.xml</config_file>
@@ -118,13 +119,15 @@
</package>
<package>
<name>pfBlockerNG</name>
- <website/>
- <descr><![CDATA[pfBlockerNG is the Next Generation of pfBlocker.<br />
- Manage IPv4/v6 List Sources into 'Deny, Permit or Match' formats<br />
- Country Blocking Database by MaxMind Inc. (GeoLite Free version).<br />
- De-Duplication, Suppression, and Reputation enhancements.<br />
- Provision to download from diverse List formats. Advanced Integration<br />
- for Emerging Threats IQRisk IP Reputation Threat Sources.]]></descr>
+ <descr><![CDATA[
+ pfBlockerNG is the Next Generation of pfBlocker.<br />
+ Manage IPv4/v6 List Sources into 'Deny, Permit or Match' formats.<br />
+ Country Blocking Database by MaxMind Inc. (GeoLite Free version).<br />
+ De-Duplication, Suppression, and Reputation enhancements.<br />
+ Provision to download from diverse List formats.<br />
+ Advanced Integration for Emerging Threats IQRisk IP Reputation Threat Sources.
+ ]]>
+ </descr>
<category>Firewall</category>
<pkginfolink>https://forum.pfsense.org/index.php?topic=86212.0</pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/pfblockerng/pfblockerng.xml</config_file>
@@ -146,9 +149,12 @@
<name>haproxy-1_5</name>
<internal_name>haproxy</internal_name>
<pkginfolink>https://doc.pfsense.org/index.php/haproxy_package</pkginfolink>
- <descr><![CDATA[The Reliable, High Performance TCP/HTTP(S) Load Balancer<br />
- This package implements the TCP, HTTP and HTTPS balancing features from haproxy.<br />
- Supports ACLs for smart backend switching.]]></descr>
+ <descr><![CDATA[
+ The Reliable, High Performance TCP/HTTP(S) Load Balancer.<br />
+ This package implements the TCP, HTTP and HTTPS balancing features from haproxy.<br />
+ Supports ACLs for smart backend switching.
+ ]]>
+ </descr>
<website>http://haproxy.1wt.eu/</website>
<category>Services</category>
<version>0.27</version>
@@ -170,10 +176,13 @@
<package>
<name>haproxy-devel</name>
<pkginfolink>https://doc.pfsense.org/index.php/haproxy_package</pkginfolink>
- <descr><![CDATA[The Reliable, High Performance TCP/HTTP(S) Load Balancer<br />
- This package implements the TCP, HTTP and HTTPS balancing features from haproxy.<br />
- Supports ACLs for smart backend switching.<br>
- <b>As of pkg v0.27 switched to using 1.6dev releases, if you need stable switch to haproxy-1_5 package.</b>]]></descr>
+ <descr><![CDATA[
+ The Reliable, High Performance TCP/HTTP(S) Load Balancer.<br />
+ This package implements the TCP, HTTP and HTTPS balancing features from haproxy.<br />
+ Supports ACLs for smart backend switching.<br />
+ <strong>As of pkg v0.27 switched to using 1.6dev releases. If you need stable, switch to haproxy-1_5 package.</strong>
+ ]]>
+ </descr>
<website>http://haproxy.1wt.eu/</website>
<category>Services</category>
<version>0.27</version>
@@ -197,10 +206,13 @@
<internal_name>apache-mod_security-devel</internal_name>
<pkginfolink>https://doc.pfsense.org/index.php/ProxyServerModSecurity_package</pkginfolink>
<website>http://www.modsecurity.org/</website>
- <descr><![CDATA[ModSecurity is a web application firewall that can work either embedded or as a reverse proxy.<br>
- It provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis.<br>
- In addition this package allows URL forwarding which can be convenient for hosting multiple websites behind pfSense using 1 IP address.<br>
- <b>Backup your location config before updating from 0.2.x to 0.3 package version.</b>]]></descr>
+ <descr><![CDATA[
+ ModSecurity is a web application firewall that can work either embedded or as a reverse proxy.<br />
+ It provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis.<br />
+ In addition this package allows URL forwarding which can be convenient for hosting multiple websites behind pfSense using 1 IP address.<br />
+ <strong>Backup your location config before updating from 0.2.x to 0.3 package version.</strong>
+ ]]>
+ </descr>
<category>Network Management</category>
<version>0.44</version>
<status>ALPHA</status>
@@ -253,7 +265,7 @@
<name>Avahi</name>
<pkginfolink>https://doc.pfsense.org/index.php/Avahi_package</pkginfolink>
<website>http://www.avahi.org/</website>
- <descr>Avahi is a system which facilitates service discovery on a local network. This means that you can plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared. This kind of technology is already found in Apple MacOS X (branded Rendezvous, Bonjour and sometimes Zeroconf) and is very convenient. Avahi is mainly based on Lennart Poettering's flexmdns mDNS implementation for Linux which has been discontinued in favour of Avahi.</descr>
+ <descr>Avahi is a system which facilitates service discovery on a local network. This means that you can plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared. This kind of technology is already found in Apple Mac OS X (branded Rendezvous, Bonjour and sometimes Zeroconf) and is very convenient. Avahi is mainly based on Lennart Poettering's flexmdns mDNS implementation for Linux which has been discontinued in favour of Avahi.</descr>
<category>Network Management</category>
<lib_depends>libavahi-core.so:net/avahi-app</lib_depends>
<port_category>net</port_category>
@@ -310,12 +322,11 @@
</package>
<package>
<name>Notes</name>
- <website/>
<descr>Track things you want to note for this system.</descr>
<category>Status</category>
<pkginfolink/>
<config_file>https://packages.pfsense.org/packages/config/notes/notes.xml</config_file>
- <version>0.2.4</version>
+ <version>0.2.5</version>
<status>Alpha</status>
<required_version>2.2</required_version>
<maintainer>markjcrane@gmail.com</maintainer>
@@ -323,13 +334,12 @@
</package>
<package>
<name>TFTP</name>
- <website/>
<descr>Trivial File Transport Protocol is a very simple file transfer protocol. Often used with routers, voip phones and more.</descr>
<category>Services</category>
<pkginfolink/>
<port_category>ftp</port_category>
<config_file>https://packages.pfsense.org/packages/config/tftp2/tftp.xml</config_file>
- <version>2.1</version>
+ <version>2.2</version>
<status>Stable</status>
<required_version>2.2</required_version>
<configurationfile>tftp.xml</configurationfile>
@@ -337,8 +347,7 @@
</package>
<package>
<name>PHPService</name>
- <website/>
- <descr>PHP run as a service it can do anything PHP can do including but not limited to monitoring files, CPU, RAM, and send alerts to the syslog.</descr>
+ <descr>PHP run as a service. It can do anything PHP can do including but not limited to monitoring files, CPU, RAM, and send alerts to the syslog.</descr>
<category>Services</category>
<pkginfolink>https://doc.pfsense.org/index.php/PHPService</pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/phpservice/phpservice.xml</config_file>
@@ -351,12 +360,10 @@
</package>
<package>
<name>Backup</name>
- <website/>
<descr>Tool to Backup and Restore files and directories.</descr>
<category>System</category>
- <pkginfolink></pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/backup/backup.xml</config_file>
- <version>0.1.7</version>
+ <version>0.1.8</version>
<status>Beta</status>
<required_version>2.2</required_version>
<maintainer>markjcrane@gmail.com</maintainer>
@@ -364,10 +371,8 @@
</package>
<package>
<name>Cron</name>
- <website/>
<descr>The cron utility is used to manage commands on a schedule.</descr>
<category>Services</category>
- <pkginfolink></pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/cron/cron.xml</config_file>
<version>0.1.10</version>
<status>Beta</status>
@@ -377,8 +382,7 @@
</package>
<package>
<name>vHosts</name>
- <website/>
- <descr>It is a web server package that can host HTML, Javascript, CSS, and PHP. It uses the lighttpd web server that is already installed. It uses PHP5 in FastCGI mode and has access to PHP Data Ojbects and PDO SQLite.</descr>
+ <descr>A web server package that can host HTML, Javascript, CSS, and PHP. It uses the lighttpd web server that is already installed. It uses PHP5 in FastCGI mode and has access to PHP Data Ojbects and PDO SQLite.</descr>
<category>Services</category>
<port_category>www</port_category>
<pkginfolink>https://doc.pfsense.org/index.php/vhosts</pkginfolink>
@@ -467,9 +471,12 @@
<name>Postfix Forwarder</name>
<internal_name>Postfix_Forwarder</internal_name>
<website>http://www.postfix.org/</website>
- <descr><![CDATA[Postfix mail forwarder acts as a relay server for your domain.<br />
- It can do first and second line antispam combat before sending incoming mail to local mail servers.<br />
- Postfix can also detect zombies, check RBLS, SPF, search ldap for valid recipients and use third part antispam engines like policyd and mailscanner for better antispam solution.]]></descr>
+ <descr><![CDATA[
+ Postfix mail forwarder acts as a relay server for your domain.<br />
+ It can do first and second line antispam combat before sending incoming mail to local mail servers.<br />
+ Postfix can also detect zombies, check RBLS, SPF, search ldap for valid recipients and use third part antispam engines like policyd and mailscanner for better antispam solution.
+ ]]>
+ </descr>
<category>Services</category>
<pkginfolink>https://forum.pfsense.org/index.php/topic,40622.0.html</pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/postfix/postfix.xml</config_file>
@@ -489,11 +496,14 @@
<package>
<name>Dansguardian</name>
<website>http://www.dansguardian.org/</website>
- <descr><![CDATA[DansGuardian is an award winning Open Source web content filter.<br />
- It filters the actual content of pages based on many methods including phrase matching, PICS filtering and URL filtering.<br />
- It does not purely filter based on a banned list of sites like lesser totally commercial filters.<br />
- For all non-commercial its free, without cost.<br />
- For all commercial use visit dansguardian website to get a licence.]]></descr>
+ <descr><![CDATA[
+ DansGuardian is an award winning Open Source web content filter.<br />
+ It filters the actual content of pages based on many methods, including phrase matching, PICS filtering and URL filtering.<br />
+ It does not purely filter based on a banned list of sites like lesser totally commercial filters.<br />
+ For all non-commercial use it's free, without cost.<br />
+ For all commercial use visit DansGuardian website to get a licence.
+ ]]>
+ </descr>
<category>Services</category>
<config_file>https://packages.pfsense.org/packages/config/dansguardian/dansguardian.xml</config_file>
<pkginfolink>https://forum.pfsense.org/index.php/topic,43786.0.html</pkginfolink>
@@ -514,8 +524,11 @@
<package>
<name>mailscanner</name>
<website>http://www.mailscanner.info</website>
- <descr><![CDATA[MailScanner is an e-mail security and anti-spam package for e-mail gateway systems.<br />
- This is a level3 mail scanning tool with high CPU load.]]></descr>
+ <descr><![CDATA[
+ MailScanner is an e-mail security and anti-spam package for e-mail gateway systems.<br />
+ This is a level3 mail scanning tool with high CPU load.
+ ]]>
+ </descr>
<category>Services</category>
<config_file>https://packages.pfsense.org/packages/config/mailscanner/mailscanner.xml</config_file>
<pkginfolink>https://forum.pfsense.org/index.php/topic,43687.0.html</pkginfolink>
@@ -554,7 +567,11 @@
</package>
<package>
<name>OpenBGPD</name>
- <descr>OpenBGPD is a FREE implementation of the Border Gateway Protocol, Version 4. It allows ordinary machines to be used as routers exchanging routes with other systems speaking the BGP protocol. -- WARNING! Installs files to the same place as Quagga OSPF. Installing both will result in a broken state, remove this package before installing Quagga OSPF.</descr>
+ <descr><![CDATA[
+ OpenBGPD is a free implementation of the Border Gateway Protocol, version 4. It allows ordinary machines to be used as routers exchanging routes with other systems speaking the BGP protocol.<br />
+ <strong>WARNING! Installs files to the same place as Quagga OSPF. Installing both will result in a broken state, remove this package before installing Quagga OSPF.</strong>
+ ]]>
+ </descr>
<category>NET</category>
<config_file>https://packages.pfsense.org/packages/config/openbgpd/openbgpd.xml</config_file>
<port_category>net</port_category>
@@ -572,7 +589,7 @@
</package>
<package>
<name>Lightsquid</name>
- <descr>High performance web proxy report (LightSquid). Proxy realtime stat (SQStat). Requires squid HTTP proxy.</descr>
+ <descr>LightSquid is a high performance web proxy reporting tool. Proxy realtime statistics (SQStat). Requires Squid HTTP proxy.</descr>
<website>http://lightsquid.sf.net/</website>
<category>Network Report</category>
<version>2.41</version>
@@ -588,15 +605,17 @@
<status>RC1</status>
<required_version>2.2</required_version>
<config_file>https://packages.pfsense.org/packages/config/lightsquid/lightsquid.xml</config_file>
- <pkginfolink></pkginfolink>
<configurationfile>lightsquid.xml</configurationfile>
<noembedded>true</noembedded>
</package>
<package>
<name>Sarg</name>
<website>http://www.dansguardian.org/</website>
- <descr><![CDATA[Sarg - Squid Analysis Report Generator - is a tool that generates reports about where your users are going on the Internet.<br />
- Sarg provides information about proxy users' activities: times, bytes, sites, etc. for those using Squid, Squidguard or dansguardian.]]></descr>
+ <descr><![CDATA[
+ Sarg - Squid Analysis Report Generator - is a tool that generates reports about where your users are going on the Internet.<br />
+ Sarg provides information about proxy users' activities: times, bytes, sites, etc. for those using Squid, SquidGuard or DansGuardian.
+ ]]>
+ </descr>
<category>Network Report</category>
<config_file>https://packages.pfsense.org/packages/config/sarg/sarg.xml</config_file>
<pkginfolink>https://forum.pfsense.org/index.php/topic,47765.0.html</pkginfolink>
@@ -618,9 +637,12 @@
<name>Ipguard-dev</name>
<internal_name>ipguard</internal_name>
<website>http://ipguard.deep.perm.ru/</website>
- <descr><![CDATA[Ipguard listens network for ARP packets. All permitted MAC-IP pairs listed in config files.<br />
- If it receives one with MAC-IP pair, which is not listed in 'ethers' file, it will send ARP reply with configured fake address.<br />
- This will prevent not permitted host to work properly in local ethernet segment.]]></descr>
+ <descr><![CDATA[
+ Ipguard listens on network for ARP packets. All permitted MAC-IP pairs are listed in config files.<br />
+ If it receives one with MAC-IP pair which is not listed in 'ethers' file, it will send ARP reply with configured fake address.<br />
+ This will prevent not permitted host to work properly in local ethernet segment.
+ ]]>
+ </descr>
<category>Security</category>
<config_file>https://packages.pfsense.org/packages/config/ipguard/ipguard.xml</config_file>
<pkginfolink>https://forum.pfsense.org/index.php/topic,49917.msg263664.html#msg263664</pkginfolink>
@@ -640,9 +662,12 @@
<package>
<name>Varnish3</name>
<internal_name>varnish</internal_name>
- <descr><![CDATA[Varnish is a state-of-the-art, high-performance HTTP accelerator.<br />
- It uses the advanced features in FreeBSD to achieve its high performance.<br />
- Version 3 includes streaming support]]></descr>
+ <descr><![CDATA[
+ Varnish is a state-of-the-art, high-performance HTTP accelerator.<br />
+ It uses the advanced features in FreeBSD to achieve its high performance.<br />
+ Version 3 includes streaming support
+ ]]>
+ </descr>
<website>http://varnish-cache.org</website>
<pkginfolink>https://doc.pfsense.org/index.php/Varnish_package</pkginfolink>
<category>Services</category>
@@ -664,7 +689,11 @@
<package>
<name>vnstat2</name>
<website>http://humdi.net/vnstat/</website>
- <descr>Vnstat is a console-based network traffic monitor&lt;br /&gt;The vnstat PHP frontend and vnstati adds a more user friendly way of displaying traffic usage.</descr>
+ <descr><![CDATA[
+ Vnstat is a console-based network traffic monitor.<br />
+ The vnstat PHP frontend and vnstati adds a more user friendly way of displaying traffic usage.
+ ]]>
+ </descr>
<pkginfolink>https://forum.pfsense.org/index.php/topic,14179.0.html</pkginfolink>
<category>Network Management</category>
<depends_on_package_pbi>vnstat-1.12-##ARCH##.pbi</depends_on_package_pbi>
@@ -673,18 +702,17 @@
<build_pbi>
<port>net/vnstat</port>
</build_pbi>
- <version>1.12_4</version>
+ <version>1.12.5</version>
<status>Stable</status>
<required_version>2.2</required_version>
<maintainer>crazypark2@yahoo.dk</maintainer>
<config_file>https://packages.pfsense.org/packages/config/vnstat2/vnstat2.xml</config_file>
<configurationfile>vnstat2.xml</configurationfile>
- <after_install_info></after_install_info>
<maximum_version>2.2.999</maximum_version>
</package>
<package>
<name>dns-server</name>
- <descr>pfSense version of TinyDNS which features failover host support</descr>
+ <descr>pfSense version of TinyDNS which features failover host support.</descr>
<website>http://cr.yp.to/djbdns.html</website>
<category>Services</category>
<version>1.0.6.23</version>
@@ -705,7 +733,7 @@
</package>
<package>
<name>Open-VM-Tools</name>
- <descr>VMware Tools</descr>
+ <descr>VMware Tools is a suite of utilities that enhances the performance of the virtual machine's guest operating system and improves management of the virtual machine.</descr>
<website>http://open-vm-tools.sourceforge.net/</website>
<category>Services</category>
<version>1280544_10</version>
@@ -724,7 +752,11 @@
<package>
<name>AutoConfigBackup</name>
<maintainer>coreteam@pfsense.org</maintainer>
- <descr>Automatically backs up your pfSense configuration. All contents are encrypted before being sent to the server. Requires Gold Subscription from https://portal.pfsense.org</descr>
+ <descr><![CDATA[
+ Automatically backs up your pfSense configuration. All contents are encrypted before being sent to the server.<br />
+ Requires Gold Subscription from <a href="https://portal.pfsense.org">pfSense Portal</a>.
+ ]]>
+ </descr>
<website>https://portal.pfsense.org</website>
<category>Services</category>
<version>1.28</version>
@@ -736,7 +768,7 @@
</package>
<package>
<name>arping</name>
- <descr>Broadcasts a who-has ARP packet on the network and prints answers. </descr>
+ <descr>Broadcasts a who-has ARP packet on the network and prints answers.</descr>
<website>http://www.habets.pp.se/synscan/programs.php?prog=arping</website>
<category>Services</category>
<version>1.2</version>
@@ -755,7 +787,7 @@
<package>
<name>nmap</name>
<maintainer>jimp@pfsense.org</maintainer>
- <descr>NMap is a utility for network exploration or security auditing. It supports ping scanning (determine which hosts are up), many port scanning techniques (determine what services the hosts are offering), version detection (determine what application/service is running on a port), and TCP/IP fingerprinting (remote host OS or device identification). It also offers flexible target and port specification, decoy/stealth scanning, SunRPC scanning, and more. </descr>
+ <descr>NMap is a utility for network exploration or security auditing. It supports ping scanning (determine which hosts are up), many port scanning techniques (determine what services the hosts are offering), version detection (determine what application/service is running on a port), and TCP/IP fingerprinting (remote host OS or device identification). It also offers flexible target and port specification, decoy/stealth scanning, SunRPC scanning, and more.</descr>
<category>Security</category>
<depends_on_package_pbi>nmap-6.47-##ARCH##.pbi</depends_on_package_pbi>
<config_file>https://packages.pfsense.org/packages/config/nmap/nmap.xml</config_file>
@@ -793,10 +825,10 @@
</package>
<package>
<name>nut</name>
- <descr>Network UPS Tools</descr>
+ <descr>Network UPS Tools.</descr>
<website>http://www.networkupstools.org/</website>
<category>Network Management</category>
- <version>2.0.5</version>
+ <version>2.0.6</version>
<status>BETA</status>
<required_version>2.2</required_version>
<maintainer>rswagoner@gmail.com</maintainer>
@@ -812,8 +844,7 @@
</package>
<package>
<name>diag_new_states</name>
- <descr>Paul Taylors version of Diagnostics States which utilizes pftop.</descr>
- <website>http://www.addressplus.net</website>
+ <descr>Paul Taylor's version of Diagnostics States which utilizes pftop.</descr>
<category>Network Management</category>
<version>0.2</version>
<maintainer>ptaylor@addressplus.net</maintainer>
@@ -829,7 +860,7 @@
<descr>darkstat is a network statistics gatherer. It's a packet sniffer that runs as a background process on a cable/DSL router, gathers all sorts of statistics about network usage, and serves them over HTTP.</descr>
<category>Network Management</category>
<depends_on_package_pbi>darkstat-3.0.718-##ARCH##.pbi</depends_on_package_pbi>
- <version>3.0.718</version>
+ <version>3.1</version>
<status>Stable</status>
<required_version>2.2</required_version>
<maintainer>coreteam@pfsense.org</maintainer>
@@ -850,7 +881,7 @@
<depends_on_package_pbi>pfflowd-0.8_1-##ARCH##.pbi</depends_on_package_pbi>
<version>1.0.3</version>
<status>Stable</status>
- <required_version>2.2</required_version>
+ <required_version>3.0</required_version>
<configurationfile>pfflowd.xml</configurationfile>
<port_category>net</port_category>
<run_depends>sbin/pfflowd:net/pfflowd</run_depends>
@@ -861,11 +892,11 @@
</package>
<package>
<name>widentd</name>
- <descr>RFC1413 auth/identd daemon with fixed fake reply</descr>
- <website>http://www.webweaving.org/widentd</website>
+ <descr>RFC1413 auth/identd daemon with fixed fake reply.</descr>
+ <website>http://bsdforge.com/projects/source/net/widentd/</website>
<category>Services</category>
<depends_on_package_pbi>widentd-1.03_2-##ARCH##.pbi</depends_on_package_pbi>
- <version>1.03_2</version>
+ <version>1.0.4</version>
<status>Stable</status>
<pkginfolink>https://doc.pfsense.org/index.php/Widentd_package</pkginfolink>
<required_version>2.2</required_version>
@@ -881,10 +912,13 @@
<package>
<name>freeradius2</name>
<website>http://www.freeradius.org/</website>
- <descr><![CDATA[A free implementation of the RADIUS protocol.<br />
- Support: MySQL, PostgreSQL, LDAP, Kerberos<br />
- FreeRADIUS and FreeRADIUS2 settings are not compatible so don't use them together or try to update<br />
- On pfSense docs there is a how-to which could help you on porting users.]]></descr>
+ <descr><![CDATA[
+ A free implementation of the RADIUS protocol.<br />
+ Support: MySQL, PostgreSQL, LDAP, Kerberos.<br />
+ FreeRADIUS and FreeRADIUS2 settings are not compatible so don't use them together or try to update.<br />
+ On pfSense docs there is a how-to which could help you on porting users.
+ ]]>
+ </descr>
<pkginfolink>https://doc.pfsense.org/index.php/FreeRADIUS_2.x_package</pkginfolink>
<category>System</category>
<version>1.6.14</version>
@@ -894,7 +928,7 @@
<depends_on_package_pbi>freeradius-2.2.6_3-##ARCH##.pbi</depends_on_package_pbi>
<config_file>https://packages.pfsense.org/packages/config/freeradius2/freeradius.xml</config_file>
<configurationfile>freeradius.xml</configurationfile>
- <after_install_info>Please visit Services: FreeRADIUS</after_install_info>
+ <after_install_info>Please visit Services: FreeRADIUS.</after_install_info>
<port_category>net</port_category>
<run_depends>sbin/radiusd:net/freeradius2 bin/bash:shells/bash</run_depends>
<build_pbi>
@@ -928,7 +962,7 @@
<package>
<name>stunnel</name>
<website>http://www.stunnel.org/</website>
- <descr>An SSL encryption wrapper between remote client and local or remote servers. </descr>
+ <descr>SSL encryption wrapper between remote client and local or remote servers.</descr>
<category>Network Management</category>
<depends_on_package_pbi>stunnel-5.20-##ARCH##.pbi</depends_on_package_pbi>
<version>5.20</version>
@@ -947,12 +981,12 @@
</package>
<package>
<name>iperf</name>
- <website>http://dast.nlanr.net/Projects/Iperf/</website>
+ <website>http://www.freshports.org/benchmarks/iperf/</website>
<descr>Iperf is a tool for testing network throughput, loss, and jitter.</descr>
<category>Network Management</category>
<config_file>https://packages.pfsense.org/packages/config/iperf/iperf.xml</config_file>
<depends_on_package_pbi>iperf-2.0.5-##ARCH##.pbi</depends_on_package_pbi>
- <version>2.0.5_1</version>
+ <version>2.0.5.2</version>
<status>Beta</status>
<pkginfolink>https://doc.pfsense.org/index.php/Iperf_package</pkginfolink>
<required_version>2.2</required_version>
@@ -965,7 +999,7 @@
</package>
<package>
<name>netio</name>
- <website>http://freshmeat.net/projects/netio/</website>
+ <website>http://www.ars.de/ars/ars.nsf/docs/netio/</website>
<descr>This is a network benchmark for DOS, OS/2 2.x, Windows NT/2000 and Unix. It measures the net throughput of a network via NetBIOS and/or TCP/IP protocols (Unix and DOS only support TCP/IP) using various different packet sizes.</descr>
<category>Network Management</category>
<config_file>https://packages.pfsense.org/packages/config/netio/netio.xml</config_file>
@@ -984,7 +1018,7 @@
<package>
<name>mtr-nox11</name>
<maintainer>billm@pfsense.org</maintainer>
- <descr>Enhanced traceroute replacement</descr>
+ <descr>Enhanced traceroute replacement. mtr combines the functionality of the traceroute and ping programs in a single network diagnostic tool.</descr>
<website>http://www.bitwizard.nl/mtr/</website>
<category>Network Management</category>
<depends_on_package_pbi>mtr-0.85_1-##ARCH##.pbi</depends_on_package_pbi>
@@ -1023,9 +1057,12 @@
<package>
<name>squid3</name>
<internal_name>squid</internal_name>
- <descr><![CDATA[High performance web proxy cache.<br />
- It combines squid as a proxy server with its capabilities of acting as a HTTP / HTTPS reverse proxy.<br />
- It includes an Exchange-Web-Access (OWA) Assistant, ssl filtering and antivirus integration via i-cap]]></descr>
+ <descr><![CDATA[
+ High performance web proxy cache.<br />
+ It combines Squid as a proxy server with its capabilities of acting as a HTTP / HTTPS reverse proxy.<br />
+ It includes an Exchange-Web-Access (OWA) Assistant, SSL filtering and antivirus integration via C-ICAP.
+ ]]>
+ </descr>
<pkginfolink>https://forum.pfsense.org/index.php/topic,48347.0.html</pkginfolink>
<website>http://www.squid-cache.org/</website>
<category>Network</category>
@@ -1047,7 +1084,7 @@
</package>
<package>
<name>LCDproc</name>
- <descr>LCD display driver</descr>
+ <descr>LCD display driver.</descr>
<website>http://www.lcdproc.org/</website>
<category>Utility</category>
<version>1.0.2</version>
@@ -1064,12 +1101,13 @@
<port>sysutils/lcdproc</port>
</build_pbi>
<build_options>lcdproc_SET_FORCE=USB</build_options>
+ <after_install_info>Please set the service options in Services - LCDproc before running the service.</after_install_info>
<maximum_version>2.2.999</maximum_version>
</package>
<package>
<name>LCDproc-dev</name>
<internal_name>lcdproc</internal_name>
- <descr>LCD display driver - Development version</descr>
+ <descr>LCD display driver - development version.</descr>
<website>http://www.lcdproc.org/</website>
<category>Utility</category>
<version>0.9.11</version>
@@ -1087,13 +1125,13 @@
<port>sysutils/lcdproc</port>
</build_pbi>
<build_options>lcdproc_SET_FORCE=USB</build_options>
- <after_install_info>Please set the service options in Services-LCDproc before running the service.</after_install_info>
+ <after_install_info>Please set the service options in Services - LCDproc before running the service.</after_install_info>
<maximum_version>2.2.999</maximum_version>
</package>
<package>
<name>arpwatch</name>
<descr>Arpwatch monitors Ethernet to IP address pairings. It logs certain changes to syslog.</descr>
- <website>http://www-nrg.ee.lbl.gov/</website>
+ <website>http://ee.lbl.gov/</website>
<category>Security</category>
<depends_on_package_pbi>arpwatch-2.1.a15_8-##ARCH##.pbi</depends_on_package_pbi>
<build_pbi>
@@ -1153,14 +1191,14 @@
<package>
<name>OpenVPN Client Export Utility</name>
<internal_name>openvpn-client-export</internal_name>
- <descr>Allows a pre-configured OpenVPN Windows Client or Mac OSX's Viscosity configuration bundle to be exported directly from pfSense.</descr>
+ <descr>Allows a pre-configured OpenVPN Windows Client or Mac OS X's Viscosity configuration bundle to be exported directly from pfSense.</descr>
<category>Security</category>
<depends_on_package_pbi>zip-3.0_1-##ARCH##.pbi p7zip-9.20.1_2-##ARCH##.pbi</depends_on_package_pbi>
<build_port_path>/usr/ports/archivers/p7zip</build_port_path>
<build_port_path>/usr/ports/archivers/zip</build_port_path>
<port_category>security</port_category>
<run_depends>share/openvpn/client-export/template/config-import:security/openvpn-client-export bin/zip:archivers/zip bin/7z:archivers/p7zip</run_depends>
- <version>1.2.17</version>
+ <version>1.2.19</version>
<status>RELEASE</status>
<required_version>2.2</required_version>
<config_file>https://packages.pfsense.org/packages/config/openvpn-client-export/openvpn-client-export.xml</config_file>
@@ -1168,9 +1206,8 @@
</package>
<package>
<name>HAVP antivirus</name>
- <pkginfolink></pkginfolink>
<website>http://www.server-side.de/</website>
- <descr>Antivirus: HAVP (HTTP Antivirus Proxy) is a proxy with a ClamAV anti-virus scanner. The main aims are continuous, non-blocking downloads and smooth scanning of dynamic and password protected HTTP traffic. Havp antivirus proxy has a parent and transparent proxy mode. It can be used with squid or standalone. And File Scanner for local files.</descr>
+ <descr>Antivirus: HAVP (HTTP Antivirus Proxy) is a proxy with a ClamAV anti-virus scanner. The main aims are continuous, non-blocking downloads and smooth scanning of dynamic and password protected HTTP traffic. HAVP antivirus proxy has a parent and transparent proxy mode. It can be used with Squid or standalone.</descr>
<category>Network Management</category>
<depends_on_package_pbi>havp-0.91_3-##ARCH##.pbi</depends_on_package_pbi>
<build_pbi>
@@ -1189,9 +1226,9 @@
</package>
<package>
<name>blinkled</name>
- <descr>Allows you to use LEDs for network activity on supported platforms (ALIX, WRAP, Soekris, etc)</descr>
+ <descr>Allows you to use LEDs for monitoring network activity on supported platforms (ALIX, WRAP, Soekris, etc.)</descr>
<category>System</category>
- <version>0.4.4</version>
+ <version>0.4.5</version>
<status>Beta</status>
<maintainer>jimp@pfsense.org</maintainer>
<required_version>2.2</required_version>
@@ -1208,7 +1245,7 @@
</package>
<package>
<name>gwled</name>
- <descr>Allows you to use LEDs for gateway status on supported platforms (ALIX, WRAP, Soekris, etc)</descr>
+ <descr>Allows you to use LEDs for monitoring gateway status on supported platforms (ALIX, WRAP, Soekris, etc.)</descr>
<category>System</category>
<version>0.2.2</version>
<status>Beta</status>
@@ -1255,10 +1292,8 @@
</package>
<package>
<name>Shellcmd</name>
- <website/>
<descr>The shellcmd utility is used to manage commands on system startup.</descr>
<category>Services</category>
- <pkginfolink></pkginfolink>
<config_file>https://packages.pfsense.org/packages/config/shellcmd/shellcmd.xml</config_file>
<version>0.6</version>
<status>Beta</status>
@@ -1280,7 +1315,7 @@
<config_file>https://packages.pfsense.org/packages/config/nrpe2/nrpe2.xml</config_file>
<version>2.15_5 v2.2_4</version>
<status>Beta</status>
- <required_version>2.2</required_version>
+ <required_version>2.2.1</required_version>
<maintainer>erik@erikkristensen.com</maintainer>
<configurationfile>nrpe2.xml</configurationfile>
<maximum_version>2.2.999</maximum_version>
@@ -1288,7 +1323,11 @@
<package>
<name>Check_mk agent</name>
<website>https://github.com/sileht/check_mk/blob/master/doc/README</website>
- <descr><![CDATA[The basic idea of check_mk is to fetch "all" information about a target host at once.<br>For each host to be monitored check_mk is called by Nagios only once per time period.]]></descr>
+ <descr><![CDATA[
+ The basic idea of check_mk is to fetch "all" information about a target host at once.<br />
+ For each host to be monitored check_mk is called by Nagios only once per time period.
+ ]]>
+ </descr>
<category>Services</category>
<depends_on_package_pbi>muse-0.2-##ARCH##.pbi</depends_on_package_pbi>
<build_pbi>
@@ -1305,8 +1344,11 @@
</package>
<package>
<name>SSHDCond</name>
- <descr><![CDATA[Allows to define SSH overrides for users,groups,hosts and addresses using Match in a convenient way.<br />
- This package acts as an access list frontend for ssh connections]]></descr>
+ <descr><![CDATA[
+ Allows to define SSH overrides for users, groups, hosts and addresses using Match in a convenient way.<br />
+ This package acts as an access list frontend for ssh connections
+ ]]>
+ </descr>
<category>Enhancements</category>
<version>1.0.2</version>
<status>Beta</status>
@@ -1330,7 +1372,11 @@
<package>
<name>Quagga OSPF</name>
<internal_name>Quagga_OSPF</internal_name>
- <descr>OSPF routing protocol using Quagga -- WARNING! Installs files to the same place as OpenBGPD. Installing both will break things.</descr>
+ <descr><![CDATA[
+ OSPF routing protocol using Quagga.<br />
+ <strong>WARNING! Installs files to the same place as OpenBGPD. Installing both will break things.</strong>
+ ]]>
+ </descr>
<maintainer>jimp@pfsense.org</maintainer>
<version>0.6.5</version>
<category>Routing</category>
@@ -1343,7 +1389,6 @@
<build_pbi>
<port>net/quagga</port>
</build_pbi>
- <pkginfolink></pkginfolink>
<required_version>2.2</required_version>
<configurationfile>quagga_ospfd.xml</configurationfile>
</package>
@@ -1352,19 +1397,18 @@
<internal_name>System_Patches</internal_name>
<descr>A package to apply and maintain custom system patches.</descr>
<maintainer>jimp@pfsense.org</maintainer>
- <version>1.0.3</version>
+ <version>1.0.4</version>
<category>System</category>
<status>RELEASE</status>
<config_file>https://packages.pfsense.org/packages/config/systempatches/systempatches.xml</config_file>
<port_category>sysutils</port_category>
- <pkginfolink></pkginfolink>
<required_version>2.2</required_version>
<configurationfile>systempatches.xml</configurationfile>
</package>
<package>
<name>bacula-client</name>
<pkginfolink>http://www.bacula.org/</pkginfolink>
- <descr><![CDATA[Bacula is a set of Open Source, computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds.]]></descr>
+ <descr>Bacula is a set of Open Source computer programs that permit managings backups, recovery, and verification of computer data across a network of computers of different kinds.</descr>
<website>http://www.bacula.org/</website>
<category>Services</category>
<version>7.0.5 pkg v 1.0.7</version>
@@ -1383,7 +1427,7 @@
<package>
<name>urlsnarf</name>
<pkginfolink>https://forum.pfsense.org/</pkginfolink>
- <descr><![CDATA[HTTP URL Sniffer (console/shell only)]]></descr>
+ <descr>HTTP URL Sniffer (console/shell only).</descr>
<category>Services</category>
<version>2.4b1</version>
<status>Beta</status>
@@ -1401,7 +1445,8 @@
<package>
<name>iftop</name>
<pkginfolink>https://forum.pfsense.org/</pkginfolink>
- <descr><![CDATA[Realtime interface monitor (console/shell only)]]></descr>
+ <descr>Realtime interface monitor (console/shell only).</descr>
+ <website>http://www.ex-parrot.com/~pdw/iftop/</website>
<category>Services</category>
<version>0.17</version>
<status>Beta</status>
@@ -1419,7 +1464,8 @@
<package>
<name>git</name>
<pkginfolink>https://forum.pfsense.org/</pkginfolink>
- <descr><![CDATA[GIT Source Code Management (console/shell only)]]></descr>
+ <descr>GIT Source Code Management (console/shell only).</descr>
+ <website>http://git-scm.com/</website>
<category>Services</category>
<version>2.2.1</version>
<status>Beta</status>
@@ -1480,10 +1526,15 @@
<package>
<name>Zabbix Agent LTS</name>
<internal_name>zabbix-agent</internal_name>
- <descr>LTS (Long Term Support) release of Zabbix Monitoring agent. Zabbix LTS releases are supported for
- Zabbix customers during five (5) years i.e. 3 years of Full Support (general, critical and security issues)
- and 2 additional years of Limited Support (critical and security issues only). Zabbix LTS version release
- will result in change of the first version number. More info in http://www.zabbix.com/life_cycle_and_release_policy.php </descr>
+ <descr><![CDATA[
+ LTS (Long Term Support) release of Zabbix Monitoring agent. Zabbix LTS releases are supported for
+ Zabbix customers during five (5) years i.e. 3 years of Full Support (general, critical and security issues)
+ and 2 additional years of Limited Support (critical and security issues only). Zabbix LTS version release
+ will result in change of the first version number.<br />
+ More info in <a href="http://www.zabbix.com/life_cycle_and_release_policy.php">Zabbix Life Cycle and Release Policy</a>.
+ ]]>
+ </descr>
+ <website>http://www.zabbix.com/product.php</website>
<category>Services</category>
<config_file>https://packages.pfsense.org/packages/config/zabbix-agent-lts/zabbix-agent-lts.xml</config_file>
<version>0.8.5</version>
@@ -1502,10 +1553,15 @@
<package>
<name>Zabbix Proxy LTS</name>
<internal_name>zabbix-proxy</internal_name>
- <descr>LTS (Long Term Support) release of Zabbix agent proxy. Zabbix LTS releases are supported for
- Zabbix customers during five (5) years i.e. 3 years of Full Support (general, critical and security issues)
- and 2 additional years of Limited Support (critical and security issues only). Zabbix LTS version release
- will result in change of the first version number. More info in http://www.zabbix.com/life_cycle_and_release_policy.php </descr>
+ <descr><![CDATA[
+ LTS (Long Term Support) release of Zabbix agent proxy. Zabbix LTS releases are supported for
+ Zabbix customers during five (5) years i.e. 3 years of Full Support (general, critical and security issues)
+ and 2 additional years of Limited Support (critical and security issues only). Zabbix LTS version release
+ will result in change of the first version number.<br />
+ More info in <a href="http://www.zabbix.com/life_cycle_and_release_policy.php">Zabbix Life Cycle and Release Policy</a>.
+ ]]>
+ </descr>
+ <website>http://www.zabbix.com/product.php</website>
<category>Services</category>
<config_file>https://packages.pfsense.org/packages/config/zabbix-proxy-lts/zabbix-proxy-lts.xml</config_file>
<version>0.8.5</version>
@@ -1524,11 +1580,15 @@
</package>
<package>
<name>Zabbix-2 Agent</name>
- <descr>Standard release of Zabbix Monitoring agent. Standard Zabbix releases are supported for
- Zabbix customers during six (6) months of Full Support (general, critical and security issues) until
- the next Zabbix stable release, plus one (1) additional month of Limited Support (critical and security
- issues only). Zabbix Standard version release will result in change of the second version number.
- More info in http://www.zabbix.com/life_cycle_and_release_policy.php </descr>
+ <descr><![CDATA[
+ Standard release of Zabbix Monitoring agent. Standard Zabbix releases are supported for
+ Zabbix customers during six (6) months of Full Support (general, critical and security issues) until
+ the next Zabbix stable release, plus one (1) additional month of Limited Support (critical and security
+ issues only). Zabbix Standard version release will result in change of the second version number.<br />
+ More info in <a href="http://www.zabbix.com/life_cycle_and_release_policy.php">Zabbix Life Cycle and Release Policy</a>.
+ ]]>
+ </descr>
+ <website>http://www.zabbix.com/product.php</website>
<category>Services</category>
<config_file>https://packages.pfsense.org/packages/config/zabbix2/zabbix2-agent.xml</config_file>
<version>zabbix24-agent-2.4.3 pkg v0.8.3</version>
@@ -1545,11 +1605,15 @@
</package>
<package>
<name>Zabbix-2 Proxy</name>
- <descr>Standard release of Zabbix agent proxy. Standard Zabbix releases are supported for
- Zabbix customers during six (6) months of Full Support (general, critical and security issues) until
- the next Zabbix stable release, plus one (1) additional month of Limited Support (critical and security
- issues only). Zabbix Standard version release will result in change of the second version number.
- More info in http://www.zabbix.com/life_cycle_and_release_policy.php </descr>
+ <descr><![CDATA[
+ Standard release of Zabbix agent proxy. Standard Zabbix releases are supported for
+ Zabbix customers during six (6) months of Full Support (general, critical and security issues) until
+ the next Zabbix stable release, plus one (1) additional month of Limited Support (critical and security
+ issues only). Zabbix Standard version release will result in change of the second version number.<br />
+ More info in <a href="http://www.zabbix.com/life_cycle_and_release_policy.php">Zabbix Life Cycle and Release Policy</a>
+ ]]>
+ </descr>
+ <website>http://www.zabbix.com/product.php</website>
<category>Services</category>
<config_file>https://packages.pfsense.org/packages/config/zabbix2/zabbix2-proxy.xml</config_file>
<version>zabbix24-proxy-2.4.3 pkg v0.8.3</version>
@@ -1568,9 +1632,10 @@
<package>
<name>sudo</name>
<pkginfolink>https://doc.pfsense.org/index.php/Sudo_Package</pkginfolink>
- <descr><![CDATA[sudo allows delegation of privileges to users in the shell so commands can be run as other users, such as root.]]></descr>
+ <descr>sudo allows delegation of privileges to users in the shell so commands can be run as other users, such as root.</descr>
+ <website>http://www.sudo.ws/</website>
<category>Security</category>
- <version>0.2.6</version>
+ <version>0.2.7</version>
<status>Beta</status>
<required_version>2.2</required_version>
<config_file>https://packages.pfsense.org/packages/config/sudo/sudo.xml</config_file>
@@ -1588,11 +1653,10 @@
<internal_name>Service_Watchdog</internal_name>
<descr>Monitors for stopped services and restarts them.</descr>
<maintainer>jimp@pfsense.org</maintainer>
- <version>1.6</version>
+ <version>1.7</version>
<category>Services</category>
<status>Release</status>
<config_file>https://packages.pfsense.org/packages/config/servicewatchdog/servicewatchdog.xml</config_file>
- <pkginfolink></pkginfolink>
<required_version>2.2</required_version>
<configurationfile>servicewatchdog.xml</configurationfile>
</package>
@@ -1607,7 +1671,6 @@
<status>Beta</status>
<required_version>2.2</required_version>
<configurationfile>softflowd.xml</configurationfile>
- <maintainer></maintainer>
<port_category>net-mgmt</port_category>
<run_depends>sbin/softflowd:net-mgmt/softflowd</run_depends>
<build_pbi>
@@ -1616,7 +1679,8 @@
</package>
<package>
<name>Apcupsd</name>
- <descr>Set of programs for controlling APC UPS.</descr>
+ <descr>Set of programs for controlling APC's UPS models.</descr>
+ <website>http://www.apcupsd.com/</website>
<category>Services</category>
<config_file>https://packages.pfsense.org/packages/config/apcupsd/apcupsd.xml</config_file>
<version>apcupsd-3.14.12_1 pkg v0.3.6</version>
@@ -1635,7 +1699,7 @@
<package>
<name>LADVD</name>
<descr>Send and decode link layer advertisements. Support for LLDP (Link Layer Discovery Protocol), CDP (Cisco Discovery Protocol), EDP (Extreme Discovery Protocol) and NDP (Nortel Discovery Protocol).</descr>
- <website>https://code.google.com/p/ladvd/</website>
+ <website>https://github.com/sspans/ladvd</website>
<category>Network Management</category>
<version>1.0.4_1</version>
<status>BETA</status>
@@ -1646,14 +1710,13 @@
<build_pbi>
<port>net/ladvd</port>
</build_pbi>
- <pkginfolink></pkginfolink>
<required_version>2.2</required_version>
<configurationfile>ladvd.xml</configurationfile>
</package>
<package>
<name>suricata</name>
<website>http://suricata-ids.org/</website>
- <descr><![CDATA[High Performance Network IDS, IPS and Security Monitoring engine by OISF.]]></descr>
+ <descr>High Performance Network IDS, IPS and Security Monitoring engine by OISF.</descr>
<category>Security</category>
<version>2.1.6</version>
<status>Stable</status>
@@ -1672,7 +1735,8 @@
<package>
<name>FTP Client Proxy</name>
<internal_name>FTP_Client_Proxy</internal_name>
- <descr><![CDATA[Basic FTP Client Proxy using ftp-proxy from FreeBSD]]></descr>
+ <descr>Basic FTP Client Proxy using ftp-proxy from FreeBSD.</descr>
+ <pkginfolink>https://forum.pfsense.org/index.php?topic=89841.0</pkginfolink>
<maintainer>jimp@pfsense.org</maintainer>
<version>0.2.1</version>
<category>Services</category>
diff --git a/pkg_config.8.xml b/pkg_config.8.xml
index 5eeb18dd..b45bff1d 100644
--- a/pkg_config.8.xml
+++ b/pkg_config.8.xml
@@ -326,7 +326,7 @@
<name>Avahi</name>
<pkginfolink>https://doc.pfsense.org/index.php/Avahi_package</pkginfolink>
<website>http://www.avahi.org/</website>
- <descr>Avahi is a system which facilitates service discovery on a local network. This means that you can plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared. This kind of technology is already found in Apple MacOS X (branded Rendezvous, Bonjour and sometimes Zeroconf) and is very convenient. Avahi is mainly based on Lennart Poettering's flexmdns mDNS implementation for Linux which has been discontinued in favour of Avahi.</descr>
+ <descr>Avahi is a system which facilitates service discovery on a local network. This means that you can plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared. This kind of technology is already found in Apple Mac OS X (branded Rendezvous, Bonjour and sometimes Zeroconf) and is very convenient. Avahi is mainly based on Lennart Poettering's flexmdns mDNS implementation for Linux which has been discontinued in favour of Avahi.</descr>
<category>Network Management</category>
<depends_on_package_base_url>https://files.pfsense.org/packages/8/All/</depends_on_package_base_url>
<build_port_path>/usr/ports/net/avahi</build_port_path>
@@ -1393,7 +1393,7 @@
</package>
<package>
<name>OpenVPN Client Export Utility</name>
- <descr>Allows a pre-configured OpenVPN Windows Client or Mac OSX's Viscosity configuration bundle to be exported directly from pfSense.</descr>
+ <descr>Allows a pre-configured OpenVPN Windows Client or Mac OS X's Viscosity configuration bundle to be exported directly from pfSense.</descr>
<category>Security</category>
<depends_on_package_base_url>https://files.pfsense.org/packages/8/All/</depends_on_package_base_url>
<depends_on_package>p7zip-9.20.1.tbz</depends_on_package>
@@ -1401,7 +1401,7 @@
<depends_on_package_pbi>zip-3.0-i386.pbi p7zip-9.20.1-i386.pbi</depends_on_package_pbi>
<build_port_path>/usr/ports/archivers/p7zip</build_port_path>
<build_port_path>/usr/ports/archivers/zip</build_port_path>
- <version>1.2.16</version>
+ <version>1.2.19</version>
<status>RELEASE</status>
<required_version>2.0</required_version>
<config_file>https://packages.pfsense.org/packages/config/openvpn-client-export/openvpn-client-export.xml</config_file>
diff --git a/pkg_config.8.xml.amd64 b/pkg_config.8.xml.amd64
index 38542bcf..f52f2525 100644
--- a/pkg_config.8.xml.amd64
+++ b/pkg_config.8.xml.amd64
@@ -1388,7 +1388,7 @@
<depends_on_package_pbi>zip-3.0-amd64.pbi p7zip-9.20.1-amd64.pbi</depends_on_package_pbi>
<build_port_path>/usr/ports/archivers/p7zip</build_port_path>
<build_port_path>/usr/ports/archivers/zip</build_port_path>
- <version>1.2.16</version>
+ <version>1.2.19</version>
<status>RELEASE</status>
<required_version>2.0</required_version>
<config_file>https://packages.pfsense.org/packages/config/openvpn-client-export/openvpn-client-export.xml</config_file>