Evaluate as 0 undefined values

This commit is contained in:
Félix Suárez 2023-05-30 08:28:47 -06:00
parent 467796208b
commit bf513a5c7a
1 changed files with 31 additions and 38 deletions

View File

@ -5253,71 +5253,64 @@ sub get_module_status ($$$$) {
if ($module_type !~ m/_string/) {
# Critical
if ($critical_min ne $critical_max && defined($module->{'critical_inverse'})) {
if ($critical_min ne $critical_max) {
# [critical_min, critical_max)
if ($module->{'critical_inverse'} == 0) {
return 1 if ($data >= $critical_min && $data < $critical_max);
return 1 if ($data >= $critical_min && $critical_max < $critical_min);
}
# (-inf, critical_min), [critical_max, +inf)
else {
if (defined($module->{'critical_inverse'}) && $module->{'critical_inverse'} == 1) {
if ($critical_max < $critical_min) {
return 1 if ($data < $critical_min);
} else {
return 1 if ($data < $critical_min || $data >= $critical_max);
}
}
# [critical_min, critical_max)
else {
return 1 if ($data >= $critical_min && $data < $critical_max);
return 1 if ($data >= $critical_min && $critical_max < $critical_min);
}
}
# Warning
if ($warning_min ne $warning_max && defined($module->{'warning_inverse'})) {
# [warning_min, warning_max)
if ($module->{'warning_inverse'} == 0) {
return 2 if ($data >= $warning_min && $data < $warning_max);
return 2 if ($data >= $warning_min && $warning_max < $warning_min);
}
if ($warning_min ne $warning_max) {
# (-inf, warning_min), [warning_max, +inf)
else {
if (defined($module->{'warning_inverse'}) && $module->{'warning_inverse'} == 1) {
if ($warning_max < $warning_min) {
return 2 if ($data < $warning_min);
} else {
return 2 if ($data < $warning_min || $data >= $warning_max);
}
}
# [warning_min, warning_max)
else {
return 2 if ($data >= $warning_min && $data < $warning_max);
return 2 if ($data >= $warning_min && $warning_max < $warning_min);
}
}
}
# String
else {
# Critical
if(defined($module->{'critical_inverse'})){
$eval_result = eval {
if ($module->{'critical_inverse'} == 0) {
$critical_str ne '' && $data =~ /$critical_str/ ;
} else {
$critical_str ne '' && $data !~ /$critical_str/ ;
}
};
$eval_result = eval {
if (defined($module->{'critical_inverse'} && $module->{'critical_inverse'} == 1) {
$critical_str ne '' && $data !~ /$critical_str/ ;
} else {
$critical_str ne '' && $data =~ /$critical_str/ ;
}
};
return 1 if ($eval_result);
}
return 1 if ($eval_result);
# Warning
if(defined($module->{'warning_inverse'})){
$eval_result = eval {
if ($module->{'warning_inverse'} == 0) {
$warning_str ne '' && $data =~ /$warning_str/ ;
} else {
$warning_str ne '' && $data !~ /$warning_str/ ;
}
};
$eval_result = eval {
if (defined($module->{'warning_inverse'} && $module->{'warning_inverse'} == 1) {
$warning_str ne '' && $data !~ /$warning_str/ ;
} else {
$warning_str ne '' && $data =~ /$warning_str/ ;
}
};
return 2 if ($eval_result);
}
return 2 if ($eval_result);
}
# Normal