From 5f9761ed60091476d9e86bbb0e306776c0823fcb Mon Sep 17 00:00:00 2001 From: Ton Voon Date: Wed, 5 Jul 2006 13:45:57 +0000 Subject: Fixed checking of return codes from external mailq programs git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1443 f882894a-f735-0410-b71e-b25c423dba1c diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl index f1aec0f..c676e41 100755 --- a/plugins-scripts/check_mailq.pl +++ b/plugins-scripts/check_mailq.pl @@ -186,12 +186,10 @@ if ($mailq eq "sendmail") { ## close mailq close (MAILQ); - # declare an error if we also get a non-zero return code from mailq - # unless already set to critical + if ( $? ) { - $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - print "STDERR $?: $!\n" if $verbose; - $msg = "$state: (stderr)\n"; + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; } ## shut off the alarm @@ -318,12 +316,10 @@ elsif ( $mailq eq "postfix" ) { # close qmail-qstat close MAILQ; - # declare an error if we also get a non-zero return code from mailq - # unless already set to critical + if ( $? ) { - $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - print "STDERR $?: $!\n" if $verbose; - $msg = "$state: (stderr)\n"; + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; } ## shut off the alarm @@ -401,12 +397,10 @@ elsif ( $mailq eq "qmail" ) { # close qmail-qstat close MAILQ; - # declare an error if we also get a non-zero return code from mailq - # unless already set to critical + if ( $? ) { - $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - print "STDERR $?: $!\n" if $verbose; - $msg = "$state: (stderr)\n"; + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; } ## shut off the alarm @@ -490,6 +484,11 @@ elsif ( $mailq eq "exim" ) { } } close(MAILQ) ; + + if ( $? ) { + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; + } if ($msg_q < $opt_w) { $msg = "OK: mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; $state = $ERRORS{'OK'}; -- cgit v0.10-9-g596f