diff --git a/includes/functions.php b/includes/functions.php index e1ab08320d86..50f21bea0c58 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -604,7 +604,7 @@ function isPingable($hostname, $address_family = AF_INET, $attribs = array()) $fping_params .= ' -p ' . $config['fping_options']['millisec']; } $status = fping($hostname, $fping_params, $address_family); - if ($status['loss'] == 100) { + if ($status['exitcode'] > 0 || $status['loss'] == 100) { $response['result'] = false; } else { $response['result'] = true; @@ -1365,6 +1365,7 @@ function fping($host, $params, $address_family = AF_INET) $read .= fgets($pipes[1], 1024); } fclose($pipes[1]); + $proc_status = proc_get_status($process); proc_close($process); } @@ -1384,7 +1385,7 @@ function fping($host, $params, $address_family = AF_INET) $min = set_numeric($min); $max = set_numeric($max); $avg = set_numeric($avg); - $response = array('xmt'=>$xmt,'rcv'=>$rcv,'loss'=>$loss,'min'=>$min,'max'=>$max,'avg'=>$avg); + $response = array('xmt'=>$xmt,'rcv'=>$rcv,'loss'=>$loss,'min'=>$min,'max'=>$max,'avg'=>$avg,'exitcode'=>$proc_status['exitcode']); return $response; }