diff options
Diffstat (limited to 'lib/Nagios')
| -rw-r--r-- | lib/Nagios/Plugin.pm | 5 | ||||
| -rw-r--r-- | lib/Nagios/Plugin/Threshold.pm | 13 | 
2 files changed, 13 insertions, 5 deletions
| diff --git a/lib/Nagios/Plugin.pm b/lib/Nagios/Plugin.pm index d2a5145..8950477 100644 --- a/lib/Nagios/Plugin.pm +++ b/lib/Nagios/Plugin.pm | |||
| @@ -110,7 +110,7 @@ sub check_threshold { | |||
| 110 | 110 | ||
| 111 | my %args; | 111 | my %args; | 
| 112 | 112 | ||
| 113 | if ( $#_ == 0 && ! ref $_[0]) { # one positional param | 113 | if ( $#_ == 0 && (! ref $_[0] || ref $_[0] eq "ARRAY" )) { # one positional param | 
| 114 | %args = (check => shift); | 114 | %args = (check => shift); | 
| 115 | } | 115 | } | 
| 116 | else { | 116 | else { | 
| @@ -509,6 +509,9 @@ WARNING constant. The thresholds may be: | |||
| 509 | 3. implicitly set by command-line parameters -w, -c, --critical or | 509 | 3. implicitly set by command-line parameters -w, -c, --critical or | 
| 510 | --warning, if you have run C<< $plugin->getopts() >>. | 510 | --warning, if you have run C<< $plugin->getopts() >>. | 
| 511 | 511 | ||
| 512 | You can specify $value as an array of values and each will be checked against | ||
| 513 | the thresholds. | ||
| 514 | |||
| 512 | The return value is ready to pass to C <nagios_exit>, e . g ., | 515 | The return value is ready to pass to C <nagios_exit>, e . g ., | 
| 513 | 516 | ||
| 514 | $p->nagios_exit( | 517 | $p->nagios_exit( | 
| diff --git a/lib/Nagios/Plugin/Threshold.pm b/lib/Nagios/Plugin/Threshold.pm index 73fce53..95a089b 100644 --- a/lib/Nagios/Plugin/Threshold.pm +++ b/lib/Nagios/Plugin/Threshold.pm | |||
| @@ -16,11 +16,16 @@ sub get_status | |||
| 16 | { | 16 | { | 
| 17 | my ($self, $value) = @_; | 17 | my ($self, $value) = @_; | 
| 18 | 18 | ||
| 19 | if ($self->critical->is_set) { | 19 | $value = [ $value ] if (ref $value eq ""); | 
| 20 | return CRITICAL if $self->critical->check_range($value); | 20 | foreach my $v (@$value) { | 
| 21 | if ($self->critical->is_set) { | ||
| 22 | return CRITICAL if $self->critical->check_range($v); | ||
| 23 | } | ||
| 21 | } | 24 | } | 
| 22 | if ($self->warning->is_set) { | 25 | foreach my $v (@$value) { | 
| 23 | return WARNING if $self->warning->check_range($value); | 26 | if ($self->warning->is_set) { | 
| 27 | return WARNING if $self->warning->check_range($v); | ||
| 28 | } | ||
| 24 | } | 29 | } | 
| 25 | return OK; | 30 | return OK; | 
| 26 | } | 31 | } | 
