diff options
-rw-r--r-- | plugins/check_dig.c | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/plugins/check_dig.c b/plugins/check_dig.c index ae02a6ed..ecd80a2b 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c @@ -140,29 +140,32 @@ main (int argc, char **argv) if (output == NULL || strlen (output) == 0) asprintf (&output, _(" Probably a non-existent host/domain")); - if (elapsed_time > critical_interval) - die (STATE_CRITICAL, - _("DNS OK - %.3f seconds response time (%s)|time=%ldus\n"), - elapsed_time, output, microsec); + if (critical_interval > 0 && elapsed_time > critical_interval) + printf (_("DNS OK - %.3f seconds response time (%s)"), elapsed_time, output); else if (result == STATE_CRITICAL) - printf (_("DNS CRITICAL - %s|time=%ldus\n"), output, microsec); + printf (_("DNS CRITICAL - %s"), output); - else if (elapsed_time > warning_interval) - die (STATE_WARNING, - _("DNS OK - %.3f seconds response time (%s)|time=%ldus\n"), - elapsed_time, output, microsec); + else if (warning_interval > 0 && elapsed_time > warning_interval) + printf (_("DNS OK - %.3f seconds response time (%s)"), elapsed_time, output); else if (result == STATE_WARNING) - printf (_("DNS WARNING - %s|time=%ldus\n"), output, microsec); + printf (_("DNS WARNING - %s"), output); else if (result == STATE_OK) - printf (_("DNS OK - %.3f seconds response time (%s)|time=%ldus\n"), - elapsed_time, output, microsec); + printf (_("DNS OK - %.3f seconds response time (%s)"), + elapsed_time, output); else - printf (_("DNS problem - %s|time=%ldus\n"), output, microsec); - + printf (_("DNS problem - %s"), output); + + printf ("|%s\n", + perfdata("time", microsec, "us", + (warning_interval>0?TRUE:FALSE), + (int)1e6*warning_interval, + (critical_interval>0?TRUE:FALSE), + (int)1e6*critical_interval, + TRUE, 0, FALSE, 0)); return result; } @@ -180,7 +183,10 @@ process_arguments (int argc, char **argv) int option = 0; static struct option longopts[] = { {"hostname", required_argument, 0, 'H'}, - {"query_address", required_argument, 0, 'e'}, + {"query_address", required_argument, 0, 'l'}, + {"warning", required_argument, 0, 'w'}, + {"critical", required_argument, 0, 'c'}, + {"timeout", required_argument, 0, 't'}, {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'}, @@ -191,7 +197,7 @@ process_arguments (int argc, char **argv) return ERROR; while (1) { - c = getopt_long (argc, argv, "hVvt:l:H:", longopts, &option); + c = getopt_long (argc, argv, "hVvt:l:H:w:c:", longopts, &option); if (c == -1 || c == EOF) break; @@ -213,7 +219,7 @@ process_arguments (int argc, char **argv) usage2 (_("Invalid host name"), optarg); } break; - case 'p': + case 'p': /* server port */ if (is_intpos (optarg)) { server_port = atoi (optarg); } @@ -221,10 +227,10 @@ process_arguments (int argc, char **argv) usage2 (_("Server port must be a nonnegative integer\n"), optarg); } break; - case 'l': /* username */ + case 'l': /* address to lookup */ query_address = optarg; break; - case 'w': /* timeout */ + case 'w': /* warning */ if (is_intnonneg (optarg)) { warning_interval = atoi (optarg); } @@ -232,7 +238,7 @@ process_arguments (int argc, char **argv) usage2 (_("Warning interval must be a nonnegative integer\n"), optarg); } break; - case 'c': /* timeout */ + case 'c': /* critical */ if (is_intnonneg (optarg)) { critical_interval = atoi (optarg); } |