diff --git a/includes/discovery/sensors/count/dhcpatriot.inc.php b/includes/discovery/sensors/count/dhcpatriot.inc.php index 63095ea8f4..1a1df992cf 100644 --- a/includes/discovery/sensors/count/dhcpatriot.inc.php +++ b/includes/discovery/sensors/count/dhcpatriot.inc.php @@ -57,7 +57,7 @@ foreach ($oids as $index => $entry) { $current = snmp_get($device, $oid, '-Oqv'); - if ($type === 'dhcpatriotLicenseExpiration' && $current !== 'FULL:0') { + if ($type === 'dhcpatriotLicenseExpiration' && $current !== 'FULL:0' && gettype($epoch_time) === 'string') { $epoch_time = explode(':', $current); $current = round((intval($epoch_time[1]) - $current_time) / (60 * 60 * 24)); } diff --git a/includes/discovery/sensors/load/dhcpatriot.inc.php b/includes/discovery/sensors/load/dhcpatriot.inc.php index 62168b4ec6..7d883ee019 100644 --- a/includes/discovery/sensors/load/dhcpatriot.inc.php +++ b/includes/discovery/sensors/load/dhcpatriot.inc.php @@ -20,13 +20,13 @@ $standard_dhcp_index = '2'; $auth_dhcp_networks = snmpwalk_array_num($device, $dhcp_networks_base_oid . '.' . $auth_dhcp_index, 2); $standard_dhcp_networks = snmpwalk_array_num($device, $dhcp_networks_base_oid . '.' . $standard_dhcp_index, 2); -if (!is_array($standard_dhcp_networks) && is_array($auth_dhcp_networks) && !empty($auth_dhcp_networks)) { +if (!is_array($standard_dhcp_networks) && !empty($auth_dhcp_networks)) { $dhcp_networks = $auth_dhcp_networks; } -if (!is_array($auth_dhcp_networks) && is_array($standard_dhcp_networks) && !empty($standard_dhcp_networks)) { +if (!is_array($auth_dhcp_networks) && !empty($standard_dhcp_networks)) { $dhcp_networks = $standard_dhcp_networks; } -if (is_array($auth_dhcp_networks) && !empty($auth_dhcp_networks) && is_array($standard_dhcp_networks) && !empty($standard_dhcp_networks)) { +if (!empty($auth_dhcp_networks) && !empty($standard_dhcp_networks)) { $dhcp_networks = array_merge_recursive($auth_dhcp_networks, $standard_dhcp_networks); } @@ -42,54 +42,52 @@ $entPhysicalIndex = null; $entPhysicalIndex_measured = null; $user_func = null; -if (is_array($dhcp_networks) && !empty($dhcp_networks)) { - if (is_array($dhcp_networks[$dhcp_networks_base_oid]) && !empty($dhcp_networks[$dhcp_networks_base_oid])) { - /* Loop through the DHCP type tier of the array grabbing the dhcp_type_index for later use */ - foreach ($dhcp_networks[$dhcp_networks_base_oid] as $dhcp_type_index => $ignore_this) { - if (is_array($dhcp_networks[$dhcp_networks_base_oid][$dhcp_type_index]) && !empty($dhcp_networks[$dhcp_networks_base_oid][$dhcp_type_index])) { - /* Loop through the DHCP networks and set the network specific discover_sensor variables */ - foreach ($dhcp_networks[$dhcp_networks_base_oid][$dhcp_type_index] as $index => $entry) { - $oid = ('.' . $pool_usage_base_oid . '.' . $dhcp_type_index . '.' . $index); - $pool_size_oid = ('.' . $pool_size_base_oid . '.' . $dhcp_type_index . '.' . $index); - $pool_data = snmp_get_multi_oid($device, $oid . ' ' . $pool_size_oid); +if (!empty($dhcp_networks[$dhcp_networks_base_oid])) { + /* Loop through the DHCP type tier of the array grabbing the dhcp_type_index for later use */ + foreach ($dhcp_networks[$dhcp_networks_base_oid] as $dhcp_type_index => $ignore_this) { + if (!empty($dhcp_networks[$dhcp_networks_base_oid][$dhcp_type_index])) { + /* Loop through the DHCP networks and set the network specific discover_sensor variables */ + foreach ($dhcp_networks[$dhcp_networks_base_oid][$dhcp_type_index] as $index => $entry) { + $oid = ('.' . $pool_usage_base_oid . '.' . $dhcp_type_index . '.' . $index); + $pool_size_oid = ('.' . $pool_size_base_oid . '.' . $dhcp_type_index . '.' . $index); + $pool_data = snmp_get_multi_oid($device, $oid . ' ' . $pool_size_oid); - if ($dhcp_type_index === intval($auth_dhcp_index)) { - $type = 'dhcpatriotAuthDHCP'; - $group = 'Authenticated DHCP'; - } - - if ($dhcp_type_index === intval($standard_dhcp_index)) { - $type = 'dhcpatriotStandardDHCP'; - $group = 'Standard DHCP'; - } - - $descr = explode('[', $entry); - $descr = $descr[0] . ' (' . $pool_data[$oid] . '/' . $pool_data[$pool_size_oid] . ')'; - $divisor = $pool_data[$pool_size_oid]; - $current = (($pool_data[$oid] / $pool_data[$pool_size_oid]) * 100); - - discover_sensor( - $valid['sensor'], - $class, - $device, - $oid, - $index, - $type, - $descr, - $divisor, - $multiplier, - $low_limit, - $low_warn_limit, - $warn_limit, - $high_limit, - $current, - $poller_type, - $entPhysicalIndex, - $entPhysicalIndex_measured, - $user_func, - $group - ); + if ($dhcp_type_index === intval($auth_dhcp_index)) { + $type = 'dhcpatriotAuthDHCP'; + $group = 'Authenticated DHCP'; } + + if ($dhcp_type_index === intval($standard_dhcp_index)) { + $type = 'dhcpatriotStandardDHCP'; + $group = 'Standard DHCP'; + } + + $descr = explode('[', $entry); + $descr = $descr[0] . ' (' . $pool_data[$oid] . '/' . $pool_data[$pool_size_oid] . ')'; + $divisor = $pool_data[$pool_size_oid]; + $current = (($pool_data[$oid] / $pool_data[$pool_size_oid]) * 100); + + discover_sensor( + $valid['sensor'], + $class, + $device, + $oid, + $index, + $type, + $descr, + $divisor, + $multiplier, + $low_limit, + $low_warn_limit, + $warn_limit, + $high_limit, + $current, + $poller_type, + $entPhysicalIndex, + $entPhysicalIndex_measured, + $user_func, + $group + ); } } } diff --git a/includes/discovery/sensors/state/dhcpatriot.inc.php b/includes/discovery/sensors/state/dhcpatriot.inc.php index 305784e5fc..b760e0af3b 100644 --- a/includes/discovery/sensors/state/dhcpatriot.inc.php +++ b/includes/discovery/sensors/state/dhcpatriot.inc.php @@ -81,13 +81,13 @@ $group = null; $current_time = time(); foreach ($oids as $index => $entry) { - $oid = $oids[$index]['oid']; - $type = $oids[$index]['type']; - $descr = $oids[$index]['descr']; + $oid = $entry['oid']; + $type = $entry['type']; + $descr = $entry['descr']; $tmp_snmp_data = snmp_get($device, $oid, '-Oqv'); - if ($type === 'dhcpatriotServiceStatus') { + if ($type === 'dhcpatriotServiceStatus' && gettype($tmp_snmp_data) === 'string') { $tmp_snmp_data = explode(':', $tmp_snmp_data); $current = intval($tmp_snmp_data[1]); diff --git a/includes/polling/os/dhcpatriot.inc.php b/includes/polling/os/dhcpatriot.inc.php index a42225038e..11f86ca402 100644 --- a/includes/polling/os/dhcpatriot.inc.php +++ b/includes/polling/os/dhcpatriot.inc.php @@ -7,21 +7,36 @@ * */ -$ft_tmp = trim(snmp_get($device, ".1.3.6.1.4.1.2021.51.12.4.1.2.7.76.73.67.69.78.83.69.1", "-Oqv"), '" '); + +$ft_tmp = snmp_get($device, '.1.3.6.1.4.1.2021.51.12.4.1.2.7.76.73.67.69.78.83.69.1', '-Oqv'); +if (gettype($ft_tmp) === 'string') { + $ft_tmp = trim($ft_tmp, '" '); +} if (!empty($ft_tmp)) { - if (str_contains($ft_tmp, "FULL:0")) { - $features = "Non-Expiry License"; + if ($ft_tmp === 'FULL:0') { + $features = 'Non-Expiry License'; } - if (str_contains($ft_tmp, "LIMITED:")) { - $ft_epoch = str_replace("LIMITED:", "", $ft_tmp); - $ft_dt = new DateTime("@$ft_epoch"); - $features = "License Expires ".$ft_dt->format('Y-m-d'); + if (Str::contains($ft_tmp, 'LIMITED:')) { + $ft_epoch = str_replace('LIMITED:', '', $ft_tmp); + $ft_dt = new DateTime('@$ft_epoch'); + $features = 'License Expires '.$ft_dt->format('Y-m-d'); } } -$hardware = trim(snmp_get($device, ".1.3.6.1.4.1.2021.52.7.4.1.2.5.77.79.68.69.76.1", "-Oqv"), '" '); -$serial = trim(snmp_get($device, ".1.3.6.1.4.1.2021.52.8.4.1.2.6.83.69.82.73.65.76.1", "-Oqv"), '" '); -$version = trim(snmp_get($device, ".1.3.6.1.4.1.2021.51.11.4.1.2.7.86.69.82.83.73.79.78.1", "-Oqv"), '" '); +$hardware = snmp_get($device, '.1.3.6.1.4.1.2021.52.7.4.1.2.5.77.79.68.69.76.1', '-Oqv'); +if (gettype($hardware) === 'string') { + $hardware = trim($hardware, '" '); +} + +$serial = snmp_get($device, '.1.3.6.1.4.1.2021.52.8.4.1.2.6.83.69.82.73.65.76.1', '-Oqv'); +if (gettype($serial) === 'string') { + $serial = trim($serial, '" '); +} + +$version = snmp_get($device, '.1.3.6.1.4.1.2021.51.11.4.1.2.7.86.69.82.83.73.79.78.1', '-Oqv'); +if (gettype($version) === 'string') { + $version = trim($version, '" '); +} unset($ft_tmp, $ft_epoch, $ft_dt);