Code

check_smtp: Abort on missing/unexpected greeting
[nagiosplug.git] / plugins / check_snmp.c
index 206073b6d1cd79bc7d8394438e795bccde5de1fc..d79da8cf7cbc6bd94d3f4c8c032d0874dfc43b56 100644 (file)
@@ -169,7 +169,6 @@ main (int argc, char **argv)
        char *state_string=NULL;
        size_t response_length, current_length, string_length;
        char *temp_string=NULL;
-       int is_numeric=0;
        time_t current_time;
        double temp_double;
        time_t duration;
@@ -335,29 +334,24 @@ main (int argc, char **argv)
                /* We strip out the datatype indicator for PHBs */
                if (strstr (response, "Gauge: ")) {
                        show = strstr (response, "Gauge: ") + 7;
-                       is_numeric++;
                } 
                else if (strstr (response, "Gauge32: ")) {
                        show = strstr (response, "Gauge32: ") + 9;
-                       is_numeric++;
                } 
                else if (strstr (response, "Counter32: ")) {
                        show = strstr (response, "Counter32: ") + 11;
-                       is_numeric++;
                        is_counter=1;
                        if(!calculate_rate) 
                                strcpy(type, "c");
                }
                else if (strstr (response, "Counter64: ")) {
                        show = strstr (response, "Counter64: ") + 11;
-                       is_numeric++;
                        is_counter=1;
                        if(!calculate_rate)
                                strcpy(type, "c");
                }
                else if (strstr (response, "INTEGER: ")) {
                        show = strstr (response, "INTEGER: ") + 9;
-                       is_numeric++;
                }
                else if (strstr (response, "STRING: ")) {
                        show = strstr (response, "STRING: ") + 8;
@@ -396,15 +390,17 @@ main (int argc, char **argv)
                        }
 
                }
-               else if (strstr (response, "Timeticks: "))
+               else if (strstr (response, "Timeticks: ")) {
                        show = strstr (response, "Timeticks: ");
+               }
                else
                        show = response;
 
                iresult = STATE_DEPENDENT;
 
                /* Process this block for numeric comparisons */
-                if (is_numeric) {
+               /* Make some special values,like Timeticks numeric only if a threshold is defined */
+               if (thlds[i]->warning || thlds[i]->critical || calculate_rate) {
                        ptr = strpbrk (show, "0123456789");
                        if (ptr == NULL)
                                die (STATE_UNKNOWN,_("No valid data returned"));
@@ -1076,8 +1072,8 @@ print_help (void)
 
        printf ("\n");
        printf ("%s\n", _("Notes:"));
-       printf (" %s\n", _("- Multiple OIDs may be indicated by a comma- or space-delimited list (lists with"));
-       printf ("   %s\n", _("internal spaces must be quoted) [max 8 OIDs]"));
+       printf (" %s\n", _("- Multiple OIDs may be indicated by a comma or space-delimited list (lists with"));
+       printf ("   %s %i %s\n", _("internal spaces must be quoted). Maximum:"), MAX_OIDS, _("OIDs."));
 
        printf(" -%s", UT_THRESHOLDS_NOTES);