diff options
Diffstat (limited to 'check_load')
-rwxr-xr-x | check_load | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -42,20 +42,20 @@ sub parse_thresholds($) { my $arg = shift; if ($arg) { - if ($arg =~ m/([0-9]+),([0-9]+),([0-9]+)/) { + if ($arg =~ m/^([0-9]*),([0-9]*),([0-9]*)$/) { return ($1, $2, $3); } - if ($arg =~ m/([0-9]+),([0-9]+)/) { + if ($arg =~ m/^([0-9]*),([0-9]*)$/) { return ($1, $2, $2); } - if ($arg =~ m/([0-9]+)/) { + if ($arg =~ m/^([0-9]*)$/) { return ($1, $1, $1); } } - return (0, 0, 0); + return undef; } sub get_load($$) { @@ -98,9 +98,9 @@ my (%warn, %crit); ($crit{'load1'}, $crit{'load5'}, $crit{'load15'}) = parse_thresholds($n->opts->c); for my $load (qw( load1 load5 load15 )) { - if ($crit{$load} < $warn{$load}) { - $n->nagios_exit(UNKNOWN, "Parameter inconsistency: warning load" . - "is greater than critical load for '$load'"); + if (defined $crit{$load} && defined $warn{$load} && $crit{$load} < $warn{$load}) { + die("Parameter inconsistency: warning load is greater " . + "than critical load for '$load'"); } } |