-
Notifications
You must be signed in to change notification settings - Fork 609
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cleanup ready for pull request to pfSense
- Loading branch information
Showing
3 changed files
with
176 additions
and
194 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,14 +7,9 @@ MASTER_SITES= # empty | |
DISTFILES= # empty | ||
EXTRACT_ONLY= # empty | ||
|
||
MAINTAINER= [email protected] | ||
MAINTAINER= [email protected] | ||
COMMENT= LCDproc package for pfSense | ||
|
||
# If your build machine fails with "License not correctly defined", try replacing bsd.licenses.db.mk as follows: | ||
# cd /usr/ports/Templates/Licenses | ||
# curl -o ESF https://raw.githubusercontent.com/pfsense/FreeBSD-ports/devel/Templates/Licenses/ESF | ||
# cd /usr/ports/Mk | ||
# curl -o bsd.licenses.db.mk https://raw.githubusercontent.com/pfsense/FreeBSD-ports/devel/Mk/bsd.licenses.db.mk | ||
LICENSE= ESF | ||
|
||
NO_BUILD= yes | ||
|
@@ -23,21 +18,8 @@ NO_MTREE= yes | |
SUB_FILES= pkg-install pkg-deinstall | ||
SUB_LIST= PORTNAME=${PORTNAME} | ||
|
||
# Until the sysutils/lcdproc port is included in the pfSense-core repository catalogue | ||
# you may have to install it manually using the following commands: | ||
# 32bit: | ||
# pkg install print/freetype2 | ||
# (or pkg add http://pkg.freebsd.org/freebsd:10:x86:32/release_3/All/freetype2-2.6.2.txz) | ||
# pkg add http://pkg.freebsd.org/freebsd:10:x86:32/release_3/All/lcdproc-0.5.7_2.txz | ||
# 64bit: | ||
# pkg install print/freetype2 | ||
# (or pkg add http://pkg.freebsd.org/freebsd:10:x86:64/release_3/All/freetype2-2.6.2.txz) | ||
# pkg add http://pkg.freebsd.org/freebsd:10:x86:64/release_3/All/lcdproc-0.5.7_2.txz | ||
RUN_DEPENDS= ${LOCALBASE}/sbin/LCDd:sysutils/lcdproc | ||
|
||
# the sysutils/lcdproc port already has this dependency | ||
#LIB_DEPENDS= libfreetype.so:print/freetype2 | ||
|
||
do-extract: | ||
${MKDIR} ${WRKSRC} | ||
|
||
|
334 changes: 167 additions & 167 deletions
334
sysutils/pfSense-pkg-LCDproc/files/usr/local/pkg/lcdproc_bandwidth_by_ip.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,167 +1,167 @@ | ||
<?php | ||
/* | ||
* lcdproc_bandwidth_by_ip.php | ||
* part of pfSense (https://www.pfsense.org) | ||
* Copyright (c) 2004-2016 Electric Sheep Fencing, LLC | ||
* All rights reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
/* | ||
* This file is copied from bandwidth_by_ip.php | ||
* This file must not be placed in the www directory, unlike | ||
* bandwidth_by_ip.php it does not check for a authenticated | ||
* user session. | ||
* | ||
* It is used locally by lcdproc_client.php | ||
*/ | ||
require_once('interfaces.inc'); | ||
require_once('pfsense-utils.inc'); | ||
require_once('util.inc'); | ||
|
||
$listedIPs = ""; | ||
|
||
//get interface IP and break up into an array | ||
$interface = $_GET['if']; | ||
$real_interface = get_real_interface($interface); | ||
if (!does_interface_exist($real_interface)) { | ||
echo gettext("Wrong Interface"); | ||
return; | ||
} | ||
|
||
$intip = find_interface_ip($real_interface); | ||
//get interface subnet | ||
$netmask = find_interface_subnet($real_interface); | ||
$intsubnet = gen_subnet($intip, $netmask) . "/$netmask"; | ||
|
||
// see if they want local, remote or all IPs returned | ||
$filter = $_GET['filter']; | ||
|
||
if ($filter == "") { | ||
$filter = "local"; | ||
} | ||
|
||
if ($filter == "local") { | ||
$ratesubnet = "-c " . $intsubnet; | ||
} else { | ||
// Tell the rate utility to consider the whole internet (0.0.0.0/0) | ||
// and to consider local "l" traffic - i.e. traffic within the whole internet | ||
// then we can filter the resulting output as we wish below. | ||
$ratesubnet = "-lc 0.0.0.0/0"; | ||
} | ||
|
||
//get the sort method | ||
$sort = $_GET['sort']; | ||
if ($sort == "out") { | ||
$sort_method = "-T"; | ||
} else { | ||
$sort_method = "-R"; | ||
} | ||
|
||
// get the desired format for displaying the host name or IP | ||
$hostipformat = $_GET['hostipformat']; | ||
$iplookup = array(); | ||
// If hostname, description or FQDN is requested then load the locally-known IP address - host/description mappings into an array keyed by IP address. | ||
if ($hostipformat != "") { | ||
if (is_array($config['dhcpd'])) { | ||
// Build an array of static-mapped DHCP entries keyed by IP address. | ||
foreach ($config['dhcpd'] as $ifdata) { | ||
if (is_array($ifdata['staticmap'])) { | ||
foreach ($ifdata['staticmap'] as $hostent) { | ||
if (($hostent['ipaddr'] != "") && ($hostent['hostname'] != "")) { | ||
if ($hostipformat == "descr" && $hostent['descr'] != "") { | ||
$iplookup[$hostent['ipaddr']] = $hostent['descr']; | ||
} else { | ||
$iplookup[$hostent['ipaddr']] = $hostent['hostname']; | ||
if ($hostipformat == "fqdn") { | ||
$iplookup[$hostent['ipaddr']] .= "." . $config['system']['domain']; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
// Add any DNS host override data keyed by IP address. | ||
foreach (array('dnsmasq', 'unbound') as $dns_type) { | ||
if (isset($config[$dns_type]['enable'])) { | ||
if (is_array($config[$dns_type]['hosts'])) { | ||
foreach ($config[$dns_type]['hosts'] as $hostent) { | ||
if (($hostent['ip'] != "") && ($hostent['host'] != "")) { | ||
if ($hostipformat == "descr" && $hostent['descr'] != "") { | ||
$iplookup[$hostent['ip']] = $hostent['descr']; | ||
} else { | ||
$iplookup[$hostent['ip']] = $hostent['host']; | ||
if ($hostipformat == "fqdn") { | ||
$iplookup[$hostent['ip']] .= "." . $hostent['domain']; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
|
||
$_grb = exec("/usr/local/bin/rate -i {$real_interface} -nlq 1 -Aba 20 {$sort_method} {$ratesubnet} | tr \"|\" \" \" | awk '{ printf \"%s:%s:%s:%s:%s\\n\", $1, $2, $4, $6, $8 }'", $listedIPs); | ||
|
||
$someinfo = false; | ||
for ($x=2; $x<12; $x++) { | ||
|
||
$bandwidthinfo = $listedIPs[$x]; | ||
|
||
// echo $bandwidthinfo; | ||
$emptyinfocounter = 1; | ||
if ($bandwidthinfo != "") { | ||
$infoarray = explode (":", $bandwidthinfo); | ||
if (($filter == "all") || | ||
(($filter == "local") && (ip_in_subnet($infoarray[0], $intsubnet))) || | ||
(($filter == "remote") && (!ip_in_subnet($infoarray[0], $intsubnet)))) { | ||
if ($hostipformat == "") { | ||
// pass back just the raw IP address | ||
$addrdata = $infoarray[0]; | ||
} else { | ||
// $hostipformat is one of "hostname", "descr" or "fqdn" - we want a text representation if we can get it. | ||
if ($iplookup[$infoarray[0]] != "") { | ||
// We have a local entry, so use it. | ||
$addrdata = $iplookup[$infoarray[0]]; | ||
} else { | ||
// Try to reverse lookup the IP address. | ||
$addrdata = gethostbyaddr($infoarray[0]); | ||
if ($addrdata != $infoarray[0]) { | ||
// Reverse lookup returned something other than the IP address (FQDN, we hope!) | ||
if ($hostipformat != "fqdn") { | ||
// The user does not want the whole FQDN, so only pass back the first part of the name. | ||
$name_array = explode(".", $addrdata); | ||
$addrdata = $name_array[0]; | ||
} | ||
} | ||
} | ||
} | ||
//print host information; | ||
echo $addrdata . ";" . $infoarray[1] . ";" . $infoarray[2] . "|"; | ||
|
||
//mark that we collected information | ||
$someinfo = true; | ||
} | ||
} | ||
} | ||
unset($bandwidthinfo, $_grb); | ||
unset($listedIPs); | ||
|
||
//no bandwidth usage found | ||
if ($someinfo == false) { | ||
echo gettext("no info"); | ||
} | ||
?> | ||
<?php | ||
/* | ||
* lcdproc_bandwidth_by_ip.php | ||
* part of pfSense (https://www.pfsense.org) | ||
* Copyright (c) 2004-2016 Electric Sheep Fencing, LLC | ||
* All rights reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
/* | ||
* This file is copied from bandwidth_by_ip.php | ||
* This file must not be placed in the www directory, because unlike | ||
* bandwidth_by_ip.php it does not check for an authenticated user | ||
* session. | ||
* | ||
* It is used locally by lcdproc_client.php | ||
*/ | ||
require_once('interfaces.inc'); | ||
require_once('pfsense-utils.inc'); | ||
require_once('util.inc'); | ||
|
||
$listedIPs = ""; | ||
|
||
//get interface IP and break up into an array | ||
$interface = $_GET['if']; | ||
$real_interface = get_real_interface($interface); | ||
if (!does_interface_exist($real_interface)) { | ||
echo gettext("Wrong Interface"); | ||
return; | ||
} | ||
|
||
$intip = find_interface_ip($real_interface); | ||
//get interface subnet | ||
$netmask = find_interface_subnet($real_interface); | ||
$intsubnet = gen_subnet($intip, $netmask) . "/$netmask"; | ||
|
||
// see if they want local, remote or all IPs returned | ||
$filter = $_GET['filter']; | ||
|
||
if ($filter == "") { | ||
$filter = "local"; | ||
} | ||
|
||
if ($filter == "local") { | ||
$ratesubnet = "-c " . $intsubnet; | ||
} else { | ||
// Tell the rate utility to consider the whole internet (0.0.0.0/0) | ||
// and to consider local "l" traffic - i.e. traffic within the whole internet | ||
// then we can filter the resulting output as we wish below. | ||
$ratesubnet = "-lc 0.0.0.0/0"; | ||
} | ||
|
||
//get the sort method | ||
$sort = $_GET['sort']; | ||
if ($sort == "out") { | ||
$sort_method = "-T"; | ||
} else { | ||
$sort_method = "-R"; | ||
} | ||
|
||
// get the desired format for displaying the host name or IP | ||
$hostipformat = $_GET['hostipformat']; | ||
$iplookup = array(); | ||
// If hostname, description or FQDN is requested then load the locally-known IP address - host/description mappings into an array keyed by IP address. | ||
if ($hostipformat != "") { | ||
if (is_array($config['dhcpd'])) { | ||
// Build an array of static-mapped DHCP entries keyed by IP address. | ||
foreach ($config['dhcpd'] as $ifdata) { | ||
if (is_array($ifdata['staticmap'])) { | ||
foreach ($ifdata['staticmap'] as $hostent) { | ||
if (($hostent['ipaddr'] != "") && ($hostent['hostname'] != "")) { | ||
if ($hostipformat == "descr" && $hostent['descr'] != "") { | ||
$iplookup[$hostent['ipaddr']] = $hostent['descr']; | ||
} else { | ||
$iplookup[$hostent['ipaddr']] = $hostent['hostname']; | ||
if ($hostipformat == "fqdn") { | ||
$iplookup[$hostent['ipaddr']] .= "." . $config['system']['domain']; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
// Add any DNS host override data keyed by IP address. | ||
foreach (array('dnsmasq', 'unbound') as $dns_type) { | ||
if (isset($config[$dns_type]['enable'])) { | ||
if (is_array($config[$dns_type]['hosts'])) { | ||
foreach ($config[$dns_type]['hosts'] as $hostent) { | ||
if (($hostent['ip'] != "") && ($hostent['host'] != "")) { | ||
if ($hostipformat == "descr" && $hostent['descr'] != "") { | ||
$iplookup[$hostent['ip']] = $hostent['descr']; | ||
} else { | ||
$iplookup[$hostent['ip']] = $hostent['host']; | ||
if ($hostipformat == "fqdn") { | ||
$iplookup[$hostent['ip']] .= "." . $hostent['domain']; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
|
||
$_grb = exec("/usr/local/bin/rate -i {$real_interface} -nlq 1 -Aba 20 {$sort_method} {$ratesubnet} | tr \"|\" \" \" | awk '{ printf \"%s:%s:%s:%s:%s\\n\", $1, $2, $4, $6, $8 }'", $listedIPs); | ||
|
||
$someinfo = false; | ||
for ($x=2; $x<12; $x++) { | ||
|
||
$bandwidthinfo = $listedIPs[$x]; | ||
|
||
// echo $bandwidthinfo; | ||
$emptyinfocounter = 1; | ||
if ($bandwidthinfo != "") { | ||
$infoarray = explode (":", $bandwidthinfo); | ||
if (($filter == "all") || | ||
(($filter == "local") && (ip_in_subnet($infoarray[0], $intsubnet))) || | ||
(($filter == "remote") && (!ip_in_subnet($infoarray[0], $intsubnet)))) { | ||
if ($hostipformat == "") { | ||
// pass back just the raw IP address | ||
$addrdata = $infoarray[0]; | ||
} else { | ||
// $hostipformat is one of "hostname", "descr" or "fqdn" - we want a text representation if we can get it. | ||
if ($iplookup[$infoarray[0]] != "") { | ||
// We have a local entry, so use it. | ||
$addrdata = $iplookup[$infoarray[0]]; | ||
} else { | ||
// Try to reverse lookup the IP address. | ||
$addrdata = gethostbyaddr($infoarray[0]); | ||
if ($addrdata != $infoarray[0]) { | ||
// Reverse lookup returned something other than the IP address (FQDN, we hope!) | ||
if ($hostipformat != "fqdn") { | ||
// The user does not want the whole FQDN, so only pass back the first part of the name. | ||
$name_array = explode(".", $addrdata); | ||
$addrdata = $name_array[0]; | ||
} | ||
} | ||
} | ||
} | ||
//print host information; | ||
echo $addrdata . ";" . $infoarray[1] . ";" . $infoarray[2] . "|"; | ||
|
||
//mark that we collected information | ||
$someinfo = true; | ||
} | ||
} | ||
} | ||
unset($bandwidthinfo, $_grb); | ||
unset($listedIPs); | ||
|
||
//no bandwidth usage found | ||
if ($someinfo == false) { | ||
echo gettext("no info"); | ||
} | ||
?> |
Oops, something went wrong.