=================================================================== RCS file: /cvs/nagios/check_openbgpd/check_openbgpd,v retrieving revision 1.7 retrieving revision 1.12 diff -u -r1.7 -r1.12 --- nagios/check_openbgpd/check_openbgpd 2015/03/25 03:19:28 1.7 +++ nagios/check_openbgpd/check_openbgpd 2024/06/10 00:02:37 1.12 @@ -1,5 +1,5 @@ #!/usr/bin/perl -T -# $RedRiver: check_openbgpd,v 1.4 2009/11/19 21:22:01 andrew Exp $ +# $AFresh1: check_openbgpd,v 1.11 2024/06/09 22:34:58 afresh1 Exp $ ######################################################################## # check_openbgpd *** A nagios check for OpenBSD bgpd # @@ -9,6 +9,7 @@ use warnings; use 5.010; +use if $] >= 5.016, experimental => 'switch'; local %ENV = (); @@ -98,7 +99,7 @@ } push @cmd, 'show', 'summary'; - #open my $fh, '<', 'output' # XXX + #open my $fh, '<', 'output' or die $!; # XXX open my $fh, '-|', @cmd or die "Couldn't open bgpctl: $!\n"; while (<$fh>) { chomp; @@ -133,7 +134,11 @@ sub parse_check { my $check = shift; - return { match => [] } unless $check; + unless ($check) { + print_help(); + exit $ERRORS{'OK'} + } + my @values = split /,\s*/xms, $check; my %c = ( match => [] ); @@ -263,30 +268,33 @@ state( $w, $c ); my $opt = shift @argv; - given ($opt) { - when ( '-V' || '--version' ) { - print_revision( $PROGNAME, '$Revision: 1.7 $ ' ); + for ($opt) { + if ( $_ eq '-V' || $_ eq '--version' ) { + print_revision( $PROGNAME, '$Revision: 1.12 $ ' ); exit $ERRORS{'OK'} } - when (/^-?-h(?:elp)?/xms) { print_help(); exit $ERRORS{'OK'} } - when (/^-?-s(?:ocket)?/xms) { $checks{_SOCKET} = shift @argv } - when (/^-?-w(?:arning)?/xms) { $w = parse_check( shift @argv ) } - when (/^-?-c(?:ritical)?/xms) { $c = parse_check( shift @argv ) } - when (/^-?-u(?:nknown)?/xms) { + elsif (/^-?-h(?:elp)?\Z/xms) { print_help(); exit $ERRORS{'OK'} } + elsif (/^-?-s(?:ocket)?\Z/xms) { + $checks{_SOCKET} = shift @argv + || do { print_help(); exit $ERRORS{'OK'} } + } + elsif (/^-?-w(?:arning)?\Z/xms) { $w = parse_check( shift @argv ) } + elsif (/^-?-c(?:ritical)?\Z/xms) { $c = parse_check( shift @argv ) } + elsif (/^-?-u(?:nknown)?\Z/xms) { $checks{_UNKNOWN} = { - WARNING => $w, - CRITICAL => $c, - } + WARNING => $w, + CRITICAL => $c, + }; } - when (/^-?-n(?:eighbor)?/xms) { + elsif (/^-?-n(?:eighbor)?\Z/xms) { while ( @argv && $argv[0] !~ /^-/xms ) { $checks{ shift @argv } = { - WARNING => $w, - CRITICAL => $c, - } + WARNING => $w, + CRITICAL => $c, + }; } } - default { print_help(); exit $ERRORS{'UNKNOWN'} } + else { print_help(); exit $ERRORS{'UNKNOWN'} } } } return %checks; @@ -369,7 +377,7 @@ EOL - print_revision( $PROGNAME, '$Revision: 1.7 $' ); + print_revision( $PROGNAME, '$Revision: 1.12 $' ); print $LICENSE;