From d8904d866c39fb1fd468797d19ae1713ab49b4bf Mon Sep 17 00:00:00 2001 From: laf Date: Thu, 16 Oct 2014 21:52:35 +0100 Subject: [PATCH] Added options for fping to retry and timeout --- includes/defaults.inc.php | 38 ++++++++++++++++++++------------------ includes/functions.php | 11 +++++++++-- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index 03d074ec0e..0ce7b4d235 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -39,24 +39,26 @@ $config['own_hostname'] = "localhost"; // Location of executables -$config['rrdtool'] = "/usr/bin/rrdtool"; -$config['fping'] = "/usr/bin/fping"; -$config['fping6'] = "/usr/bin/fping6"; -$config['snmpwalk'] = "/usr/bin/snmpwalk"; -$config['snmpget'] = "/usr/bin/snmpget"; -$config['snmpbulkwalk'] = "/usr/bin/snmpbulkwalk"; -$config['whois'] = "/usr/bin/whois"; -$config['ping'] = "/bin/ping"; -$config['mtr'] = "/usr/bin/mtr"; -$config['nmap'] = "/usr/bin/nmap"; -$config['nagios_plugins'] = "/usr/lib/nagios/plugins"; -$config['ipmitool'] = "/usr/bin/ipmitool"; -$config['virsh'] = "/usr/bin/virsh"; -$config['dot'] = "/usr/bin/dot"; -$config['unflatten'] = "/usr/bin/unflatten"; -$config['neato'] = "/usr/bin/neato"; -$config['sfdp'] = "/usr/bin/sfdp"; -$config['svn'] = "/usr/bin/svn"; +$config['rrdtool'] = "/usr/bin/rrdtool"; +$config['fping'] = "/usr/bin/fping"; +$config['fping_options']['retries'] = 3; +$config['fping_options']['timeout'] = 500; +$config['fping6'] = "/usr/bin/fping6"; +$config['snmpwalk'] = "/usr/bin/snmpwalk"; +$config['snmpget'] = "/usr/bin/snmpget"; +$config['snmpbulkwalk'] = "/usr/bin/snmpbulkwalk"; +$config['whois'] = "/usr/bin/whois"; +$config['ping'] = "/bin/ping"; +$config['mtr'] = "/usr/bin/mtr"; +$config['nmap'] = "/usr/bin/nmap"; +$config['nagios_plugins'] = "/usr/lib/nagios/plugins"; +$config['ipmitool'] = "/usr/bin/ipmitool"; +$config['virsh'] = "/usr/bin/virsh"; +$config['dot'] = "/usr/bin/dot"; +$config['unflatten'] = "/usr/bin/unflatten"; +$config['neato'] = "/usr/bin/neato"; +$config['sfdp'] = "/usr/bin/sfdp"; +$config['svn'] = "/usr/bin/svn"; // Memcached - Keep immediate statistics diff --git a/includes/functions.php b/includes/functions.php index d699e3a752..9efd7c9013 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -463,13 +463,20 @@ function isPingable($hostname,$device_id = FALSE) { global $config; - $status = shell_exec($config['fping'] . " -e $hostname 2>/dev/null"); + $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']; + } + $status = shell_exec($config['fping'] . "$fping_params -e $hostname 2>/dev/null"); $response = array(); if (strstr($status, "alive")) { $response['result'] = TRUE; } else { - $status = shell_exec($config['fping6'] . " -e $hostname 2>/dev/null"); + $status = shell_exec($config['fping6'] . "$fping_params -e $hostname 2>/dev/null"); if (strstr($status, "alive")) { $response['result'] = TRUE;