diff --git a/plugins/check_snmp.d/check_snmp_helpers.c b/plugins/check_snmp.d/check_snmp_helpers.c index ecbfc5dd..f506537a 100644 --- a/plugins/check_snmp.d/check_snmp_helpers.c +++ b/plugins/check_snmp.d/check_snmp_helpers.c @@ -446,7 +446,8 @@ check_snmp_evaluation evaluate_single_unit(response_value response, long long treated_value = (long long)response.value.uIntVal; if (eval_params.multiplier_set || eval_params.offset_set) { - double processed = 0; + double processed = (double)response.value.uIntVal; + if (eval_params.offset_set) { processed += eval_params.offset; } @@ -480,15 +481,16 @@ check_snmp_evaluation evaluate_single_unit(response_value response, } break; case ASN_INTEGER: { if (eval_params.multiplier_set || eval_params.offset_set) { - double processed = 0; - if (eval_params.multiplier_set) { - processed = (double)response.value.intVal * eval_params.multiplier; - } + double processed = (double)response.value.intVal; if (eval_params.offset_set) { processed += eval_params.offset; } + if (eval_params.multiplier_set) { + processed *= eval_params.multiplier; + } + result_state.value.doubleVal = processed; if (eval_params.calculate_rate && have_previous_state) {