=================================================================== RCS file: /cvs/nagios/check_bioctl/check_bioctl,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- nagios/check_bioctl/check_bioctl 2017/02/08 17:34:23 1.22 +++ nagios/check_bioctl/check_bioctl 2017/02/08 19:00:15 1.23 @@ -1,5 +1,5 @@ #!/usr/bin/perl -T -# $AFresh1: check_bioctl,v 1.21 2017/02/08 16:31:55 andrew Exp $ +# $AFresh1: check_bioctl,v 1.22 2017/02/08 17:34:23 andrew Exp $ ######################################################################## # check_bioctl *** A nagios check for OpenBSD bioctl # @@ -120,23 +120,28 @@ } exit $ERRORS{$state}; +sub fail { + my ($message) = @_; + print $message; + exit $ERRORS{'UNKNOWN'}; +} + sub read_bioctl { my ($devices) = @_; my %volumes; foreach my $d ( @{$devices} ) { open my $bioctl, q{-|}, @DOAS, $BIOCTL, $d - or die "Couldn't open bioctl: $!\n"; + or fail("Couldn't open bioctl: $!\n"); LINE: while ( my $line = <$bioctl> ) { my ( $i, $item ) = parse_bioctl_line($line); next LINE if !defined $i; $volumes{$d}{$i} = $item; } - ## no critic 'die' close $bioctl - or die $! + or fail( $! ? "Error closing bioctl pipe: $!\n" - : "Exit status $? from bioctl \n"; + : "Exit status $? from bioctl\n" ); } foreach my $d ( keys %volumes ) { @@ -221,7 +226,7 @@ } sub print_revision { - my $rev = '$Revision: 1.22 $'; + my $rev = '$Revision: 1.23 $'; $rev =~ s/^\D+([\d\.]+)\D+$/v$1/xms; say "$PROGNAME $rev";