summaryrefslogtreecommitdiffstats
path: root/usr/local/www/includes/functions.inc.php
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@inf.org>2015-06-20 00:00:15 +0545
committerPhil Davis <phil.davis@inf.org>2015-06-20 00:00:15 +0545
commit3d0391f1d843a04ae1072440c8e38bbf392cb4c6 (patch)
treea1b0f6bf3d06fbb42a080e4b89c5ba6c045a6a78 /usr/local/www/includes/functions.inc.php
parent3378289af3f39b231de2c26e298d85d3eca4c835 (diff)
downloadpfsense-3d0391f1d843a04ae1072440c8e38bbf392cb4c6.zip
pfsense-3d0391f1d843a04ae1072440c8e38bbf392cb4c6.tar.gz
Display monitor IP on Gateways widget
This change adds a setting for the Gateways dashboard widget so the user can choose to display the Gateway IP, Monitor IP or both. If "both" is chosen and the Gateway IP is the Monitor IP, then only the Gateway IP is shown - i.e. the same IP address is not repeated on the widget display. If "both" is chosen and the Monitor IP is different to the Gateway IP then the Monitor IP is shown in () brackets after the Gateway IP. If "Monitor IP" is chosen and there is no special Monitor IP defined, then the Gateway IP is displayed (which is also the Monitor IP). If "Gateway IP" is chosen then the widget behaves as it does now. "Gateway IP" is the default. I find this handy because the Gateways widget reports RTT (latency) and loss figures that are actually for pings to the Monitor IP. So it seems useful to be able to display the Monitor IP in the widget.
Diffstat (limited to 'usr/local/www/includes/functions.inc.php')
-rw-r--r--usr/local/www/includes/functions.inc.php37
1 files changed, 35 insertions, 2 deletions
diff --git a/usr/local/www/includes/functions.inc.php b/usr/local/www/includes/functions.inc.php
index 8d89969..69b8642 100644
--- a/usr/local/www/includes/functions.inc.php
+++ b/usr/local/www/includes/functions.inc.php
@@ -32,6 +32,13 @@ function get_stats() {
}
function get_gatewaystats() {
+ global $config;
+ if (isset($config["widgets"]["gateways_widget"]["display_type"])) {
+ $display_type = $config["widgets"]["gateways_widget"]["display_type"];
+ } else {
+ $display_type = "gw_ip";
+ }
+
$a_gateways = return_gateways_array();
$gateways_status = array();
$gateways_status = return_gateways_status(true);
@@ -43,8 +50,29 @@ function get_gatewaystats() {
}
$isfirst = false;
$data .= $gw['name'] . ",";
+
+ $monitor_address = "";
+ $monitor_address_disp = "";
+ if ($display_type == "monitor_ip" || $display_type == "both_ip") {
+ $monitor_address = $gw['monitor'];
+ if ($monitor_address != "" && $display_type == "both_ip") {
+ $monitor_address_disp = " (" . $monitor_address . ")";
+ } else {
+ $monitor_address_disp = $monitor_address;
+ }
+ }
+
if ($gateways_status[$gname]) {
- $data .= "<b>" . lookup_gateway_ip_by_name($gname) . "</b>,";
+ if ($display_type == "gw_ip" || $display_type == "both_ip" || ($display_type == "monitor_ip" && $monitor_address == "")) {
+ $if_gw = lookup_gateway_ip_by_name($gname);
+ } else {
+ $if_gw = "";
+ }
+ if ($monitor_address == $if_gw) {
+ $monitor_address_disp = "";
+ }
+
+ $data .= "<b>" . $if_gw . $monitor_address_disp . "</b>,";
$gws = $gateways_status[$gname];
switch (strtolower($gws['status'])) {
case "none":
@@ -68,7 +96,12 @@ function get_gatewaystats() {
break;
}
} else {
- $data .= "~,";
+ if ($display_type == "gw_ip" || $display_type == "both_ip" || ($display_type == "monitor_ip" && $monitor_address == "")) {
+ $if_gw = "~";
+ } else {
+ $if_gw = "";
+ }
+ $data .= $if_gw . $monitor_address_disp . ",";
$gws['delay'] = "~";
$gws['loss'] = "~";
$online = "Unknown";
OpenPOWER on IntegriCloud