From 8eab63ee74810cd81d4d3146bdefd8aded2d3835 Mon Sep 17 00:00:00 2001 From: Riccardo Bicelli Date: Fri, 27 Mar 2020 10:23:40 +0100 Subject: [PATCH] Improved interface detection --- pfsense_zbx.php | 46 ++++++++++------------------------------------ 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/pfsense_zbx.php b/pfsense_zbx.php index 1a5ef18..c27ff1f 100644 --- a/pfsense_zbx.php +++ b/pfsense_zbx.php @@ -56,50 +56,25 @@ function pfz_test(){ } -function pfz_get_if_name($hwif, $ifdescrs=""){ - if !(is_array($if_descrs)) - $ifdescrs = get_configured_interface_with_descr(true); - - foreach ($ifdescrs as $ifdescr => $ifname){ - $ifinfo = get_interface_info($ifdescr); - if($ifinfo["hwif"]==$hwif){ - return $ifname; - } - } - return null; - -} - -//Interface Discovery -function pfz_interface_discovery_legacy() { - +// Interface Discovery +// Improved performance, but need testing +function pfz_interface_discovery() { $ifdescrs = get_configured_interface_with_descr(true); $ifaces = get_interface_arr(); $json_string = '{"data":['; - foreach ($ifaces as $iface) { - $json_string .= '{"{#IFNAME}":"' . $iface . '"'; - - $descr = pfz_get_if_name($iface); - if($descr === null){ $descr = $iface; } - - $json_string .= ',"{#IFDESCR}":"' . $descr . '"'; - $json_string .= '},'; + foreach ($ifdescrs as $ifdescr => $ifname){ + $ifinfo = get_interface_info($ifdescr); + $ifaces[$ifname] = $ifinfo; } - $json_string = rtrim($json_string,","); - $json_string .= "]}"; - echo $json_string; + foreach ($ifaces as $iface=>$ifdescr) { + $json_string .= '{"{#IFNAME}":"' . $iface . '"'; -} + $descr = $ifdescr; + if($descr === null){ $descr = $iface; } -function pfz_interface_discovery() { - - $ifdescrs = get_configured_interface_with_descr(true); - - foreach ($ifdescr as $descr=>$iface) { - $json_string .= '{"{#IFNAME}":"' . $iface["hwif"] . '"'; $json_string .= ',"{#IFDESCR}":"' . $descr . '"'; $json_string .= '},'; } @@ -110,7 +85,6 @@ function pfz_interface_discovery() { } - //OpenVPN Server Discovery function pfz_openvpn_get_all_servers(){ $servers = openvpn_get_active_servers();