From e21ee0d8d8e80b39ac079165b4b4a95741e9774e Mon Sep 17 00:00:00 2001 From: laf Date: Wed, 7 Oct 2015 21:19:27 +0000 Subject: [PATCH] Added ability to disable icmp check on devices --- includes/defaults.inc.php | 2 ++ includes/functions.php | 51 ++++++++++++++++++++++----------------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index a47a32d87..c0345ffba 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -195,6 +195,8 @@ $config['snmp']['v3'][0]['cryptopass'] = ''; $config['snmp']['v3'][0]['cryptoalgo'] = 'AES'; // AES | DES +// Devices must respond to icmp by default +$config['icmp_check'] = true; // Autodiscovery Settings $config['autodiscovery']['xdp'] = true; diff --git a/includes/functions.php b/includes/functions.php index 42e9d0b25..ba4aeb30a 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -490,31 +490,38 @@ function isSNMPable($device) { function isPingable($hostname, $address_family = AF_INET, $device_id = FALSE) { global $config; - $fping_params = ''; - if(is_numeric($config['fping_options']['retries']) || $config['fping_options']['retries'] > 1) { - $fping_params .= ' -r ' . $config['fping_options']['retries']; - } - if(is_numeric($config['fping_options']['timeout']) || $config['fping_options']['timeout'] > 1) { - $fping_params .= ' -t ' . $config['fping_options']['timeout']; - } - if(is_numeric($config['fping_options']['count']) || $config['fping_options']['count'] > 0) { - $fping_params .= ' -c ' . $config['fping_options']['count']; - } - if(is_numeric($config['fping_options']['millisec']) || $config['fping_options']['millisec'] > 0) { - $fping_params .= ' -p ' . $config['fping_options']['millisec']; - } - $response = array(); - $status = fping($hostname,$fping_params,$address_family); - if ($status['loss'] == 100) { - $response['result'] = FALSE; + if ($config['icmp_check'] === true) { + + $fping_params = ''; + if(is_numeric($config['fping_options']['retries']) || $config['fping_options']['retries'] > 1) { + $fping_params .= ' -r ' . $config['fping_options']['retries']; + } + if(is_numeric($config['fping_options']['timeout']) || $config['fping_options']['timeout'] > 1) { + $fping_params .= ' -t ' . $config['fping_options']['timeout']; + } + if(is_numeric($config['fping_options']['count']) || $config['fping_options']['count'] > 0) { + $fping_params .= ' -c ' . $config['fping_options']['count']; + } + if(is_numeric($config['fping_options']['millisec']) || $config['fping_options']['millisec'] > 0) { + $fping_params .= ' -p ' . $config['fping_options']['millisec']; + } + $response = array(); + $status = fping($hostname,$fping_params,$address_family); + if ($status['loss'] == 100) { + $response['result'] = FALSE; + } + else { + $response['result'] = TRUE; + } + if (is_numeric($status['avg'])) { + $response['last_ping_timetaken'] = $status['avg']; + } + $response['db'] = $status; } else { - $response['result'] = TRUE; + $response['result'] = true; + $response['last_ping_timetaken'] = 0; } - if (is_numeric($status['avg'])) { - $response['last_ping_timetaken'] = $status['avg']; - } - $response['db'] = $status; return($response); }