summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/check_snmp.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c
index 56bad88..d3968a2 100644
--- a/plugins/check_snmp.c
+++ b/plugins/check_snmp.c
@@ -1165,17 +1165,36 @@ nextarg (char *str)
1165char * 1165char *
1166multiply (char *str) 1166multiply (char *str)
1167{ 1167{
1168 double val = strtod (str, NULL); 1168 char *endptr;
1169 val *= multiplier; 1169 double val;
1170 char *conv = "%f"; 1170 char *conv = "%f";
1171
1172 if(verbose>2)
1173 printf(" multiply input: %s\n", str);
1174
1175 val = strtod (str, &endptr);
1176 if ((val == 0.0) && (endptr == str)) {
1177 if(multiplier != 1) {
1178 die(STATE_UNKNOWN, _("multiplier set (%.1f), but input is not a number: %s"), multiplier, str);
1179 }
1180 return str;
1181 }
1182
1183 if(verbose>2)
1184 printf(" multiply extracted double: %f\n", val);
1185 val *= multiplier;
1171 if (fmtstr != "") { 1186 if (fmtstr != "") {
1172 conv = fmtstr; 1187 conv = fmtstr;
1173 } 1188 }
1174 if (val == (int)val) { 1189 if (val == (int)val) {
1175 sprintf(str, "%.0f", val); 1190 sprintf(str, "%.0f", val);
1176 } else { 1191 } else {
1192 if(verbose>2)
1193 printf(" multiply using format: %s\n", conv);
1177 sprintf(str, conv, val); 1194 sprintf(str, conv, val);
1178 } 1195 }
1196 if(verbose>2)
1197 printf(" multiply result: %s\n", str);
1179 return str; 1198 return str;
1180} 1199}
1181 1200