summaryrefslogtreecommitdiffstats
path: root/plugins/check_snmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/check_snmp.c')
-rw-r--r--plugins/check_snmp.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c
index 82d77c4..5a02503 100644
--- a/plugins/check_snmp.c
+++ b/plugins/check_snmp.c
@@ -166,6 +166,7 @@ main (int argc, char **argv)
166 time_t current_time; 166 time_t current_time;
167 double temp_double; 167 double temp_double;
168 time_t duration; 168 time_t duration;
169 char *conv = "12345678";
169 170
170 setlocale (LC_ALL, ""); 171 setlocale (LC_ALL, "");
171 bindtextdomain (PACKAGE, LOCALEDIR); 172 bindtextdomain (PACKAGE, LOCALEDIR);
@@ -304,7 +305,10 @@ main (int argc, char **argv)
304 } 305 }
305 306
306 for (line=0, i=0; line < chld_out.lines; line++, i++) { 307 for (line=0, i=0; line < chld_out.lines; line++, i++) {
307 const char *conv = "%.0f"; 308 if(calculate_rate)
309 conv = "%.1f";
310 else
311 conv = "%.0f";
308 312
309 ptr = chld_out.line[line]; 313 ptr = chld_out.line[line];
310 oidname = strpcpy (oidname, ptr, delimiter); 314 oidname = strpcpy (oidname, ptr, delimiter);
@@ -449,7 +453,7 @@ main (int argc, char **argv)
449 result = max_state (result, iresult); 453 result = max_state (result, iresult);
450 454
451 /* Prepend a label for this OID if there is one */ 455 /* Prepend a label for this OID if there is one */
452 if (nlabels > (size_t)1 && (size_t)i < nlabels && labels[i] != NULL) 456 if (nlabels >= (size_t)1 && (size_t)i < nlabels && labels[i] != NULL)
453 asprintf (&outbuff, "%s%s%s %s%s%s", outbuff, 457 asprintf (&outbuff, "%s%s%s %s%s%s", outbuff,
454 (i == 0) ? " " : output_delim, 458 (i == 0) ? " " : output_delim,
455 labels[i], mark (iresult), show, mark (iresult)); 459 labels[i], mark (iresult), show, mark (iresult));
@@ -465,7 +469,11 @@ main (int argc, char **argv)
465 ptr = NULL; 469 ptr = NULL;
466 strtod(show, &ptr); 470 strtod(show, &ptr);
467 if (ptr > show) { 471 if (ptr > show) {
468 strncat(perfstr, oidname, sizeof(perfstr)-strlen(perfstr)-1); 472 if (nlabels >= (size_t)1 && (size_t)i < nlabels && labels[i] != NULL)
473 temp_string=labels[i];
474 else
475 temp_string=oidname;
476 strncat(perfstr, temp_string, sizeof(perfstr)-strlen(perfstr)-1);
469 strncat(perfstr, "=", sizeof(perfstr)-strlen(perfstr)-1); 477 strncat(perfstr, "=", sizeof(perfstr)-strlen(perfstr)-1);
470 len = sizeof(perfstr)-strlen(perfstr)-1; 478 len = sizeof(perfstr)-strlen(perfstr)-1;
471 strncat(perfstr, show, len>ptr-show ? ptr-show : len); 479 strncat(perfstr, show, len>ptr-show ? ptr-show : len);
@@ -704,7 +712,6 @@ process_arguments (int argc, char **argv)
704 output_delim = strscpy (output_delim, optarg); 712 output_delim = strscpy (output_delim, optarg);
705 break; 713 break;
706 case 'l': /* label */ 714 case 'l': /* label */
707 label = optarg;
708 nlabels++; 715 nlabels++;
709 if (nlabels >= labels_size) { 716 if (nlabels >= labels_size) {
710 labels_size += 8; 717 labels_size += 8;