Nagiosplug bug # 1251096

check_ntp wasn't properly handing a bad exit status from the external programs it calls (ntpdate and ntpq), so jitter wasn't set.  Added check of $? on close and proper error output if status from the sub program call completion is non-zero.  This includes "host not found".


git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1291 f882894a-f735-0410-b71e-b25c423dba1c
This commit is contained in:
Harper Mann 2005-11-30 00:49:47 +00:00
parent a079822858
commit e5b45d0e14

View file

@ -1,5 +1,5 @@
#!/usr/bin/perl -w
#
# (c)1999 Ian Cass, Knowledge Matters Ltd.
# Read the GNU copyright stuff for all the legalese
#
@ -200,13 +200,15 @@ elsif ($ipv6) {
###
if (!open (NTPDATE, $ntpdate . " -q $host 2>&1 |")) {
print "Could not open ntpdate\n";
print "Could not open $ntpdate: $!\n";
exit $ERRORS{"UNKNOWN"};
}
my $out;
while (<NTPDATE>) {
#print if ($verbose); # noop
$msg = $_ unless ($msg);
$out .= "$_ ";
if (/stratum\s(\d+)/) {
$stratum = $1;
@ -241,8 +243,11 @@ while (<NTPDATE>) {
}
}
$out =~ s/\n//g;
close (NTPDATE) ||
die $! ? "$out - Error closing $ntpdate pipe: $!"
: "$out - Exit status: $? from $ntpdate\n";
close (NTPDATE);
# declare an error if we also get a non-zero return code from ntpdate
# unless already set to critical
if ( $? && !$ignoreret ) {
@ -313,7 +318,9 @@ if ($have_ntpq) {
}
}
close NTPQ;
close NTPQ ||
die $! ? "Error closing $ntpq pipe: $!"
: "Exit status: $? from $ntpq\n";
# if we did not match sys.peer or pps.peer but matched # candidates only
# generate a warning