mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Generalise arp discovery cache; move to common
This commit is contained in:
@@ -800,6 +800,28 @@ function enable_graphs($device, &$graph_enable)
|
||||
enable_os_graphs($device['os'], $graph_enable);
|
||||
}
|
||||
|
||||
//
|
||||
// maintain a simple cache of objects
|
||||
//
|
||||
|
||||
function object_add_cache($section, $obj)
|
||||
{
|
||||
global $object_cache;
|
||||
$object_cache[$section][$obj] = true;
|
||||
}
|
||||
|
||||
|
||||
function object_is_cached($section, $obj)
|
||||
{
|
||||
global $object_cache;
|
||||
if (array_key_exists($obj, $object_cache)) {
|
||||
return $object_cache[$obj];
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if config allows us to ping this device
|
||||
* $attribs contains an array of all of this devices
|
||||
@@ -812,9 +834,6 @@ function can_ping_device($attribs) {
|
||||
if ($config['icmp_check'] === true && $attribs['override_icmp_disable'] != "true") {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
} // end can_ping_device
|
||||
|
||||
/**
|
||||
|
||||
@@ -60,12 +60,12 @@ foreach (dbFetchRows($sql, array($deviceid)) as $entry) {
|
||||
}
|
||||
|
||||
// Attempt discovery of each IP only once per run.
|
||||
if (arp_discovery_is_cached($ip)) {
|
||||
if (object_is_cached('arp_discovery', $ip)) {
|
||||
echo '.';
|
||||
continue;
|
||||
}
|
||||
|
||||
arp_discovery_add_cache($ip);
|
||||
object_add_cache('arp_discovery', $ip);
|
||||
|
||||
$name = gethostbyaddr($ip);
|
||||
echo '+';
|
||||
|
||||
@@ -704,25 +704,3 @@ function discover_process_ipv6(&$valid, $ifIndex, $ipv6_address, $ipv6_prefixlen
|
||||
}//end if
|
||||
|
||||
}//end discover_process_ipv6()
|
||||
|
||||
|
||||
// maintain a simple cache of seen IPs during ARP discovery
|
||||
|
||||
|
||||
function arp_discovery_add_cache($ip) {
|
||||
global $arp_discovery;
|
||||
$arp_discovery[$ip] = true;
|
||||
|
||||
}//end arp_discovery_add_cache()
|
||||
|
||||
|
||||
function arp_discovery_is_cached($ip) {
|
||||
global $arp_discovery;
|
||||
if (array_key_exists($ip, $arp_discovery)) {
|
||||
return $arp_discovery[$ip];
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}//end arp_discovery_is_cached()
|
||||
|
||||
Reference in New Issue
Block a user