- my $off = $threshold - $current_temp;
- if ($off <= 0) {
- $message = sprintf("TEMP zone=%s %sC/%sC ", $zone, $current_temp, $threshold);
- $exit_status |= 2;
- } elsif ($off < ($threshold/10)) {
- $message = sprintf("TEMP zone=%s %sC/%sC ", $zone, $current_temp, $threshold);
- $exit_status |= 1;
+ my $what = sprintf("TEMP zone=%s", $zone);
+ if ($current_temp ne '-') {
+ my $off = $threshold - $current_temp;
+ if ($off <= 0) {
+ $message = sprintf("%s %sC/%sC ", $what, $current_temp, $threshold);
+ $exit_status |= 2 unless (exists $ignore_failed{$what});
+ } elsif ($off < ($threshold/10)) {
+ $message = sprintf("%s %sC/%sC ", $what, $current_temp, $threshold);
+ $exit_status |= 1 unless (exists $ignore_failed{$what});
+ }