summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 22bd672)
raw | patch | inline | side by side (parent: 22bd672)
author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | |
Fri, 22 Aug 2003 06:55:07 +0000 (06:55 +0000) | ||
committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | |
Fri, 22 Aug 2003 06:55:07 +0000 (06:55 +0000) |
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@691 f882894a-f735-0410-b71e-b25c423dba1c
plugins/check_dig.c | patch | blob | history |
diff --git a/plugins/check_dig.c b/plugins/check_dig.c
index dc4f89ae529a29043e0a51fc0120a5926ad2525d..c70ad97cc2e7223d68c1ac0855757c989d0b1030 100644 (file)
--- a/plugins/check_dig.c
+++ b/plugins/check_dig.c
char input_buffer[MAX_INPUT_BUFFER];
char *command_line;
char *output;
+ long microsec;
+ double elapsed_time;
int result = STATE_UNKNOWN;
output = strdup ("");
PATH_TO_DIG, dns_server, server_port, query_address);
alarm (timeout_interval);
- time (&start_time);
+ gettimeofday (&tv, NULL);
if (verbose)
printf ("%s\n", command_line);
+
/* run the command */
child_process = spopen (command_line);
if (child_process == NULL) {
asprintf (&output, _("dig returned error status"));
}
- (void) time (&end_time);
+ microsec = deltime (tv);
+ elapsed_time = (double)microsec / 1.0e6;
if (output == NULL || strlen (output) == 0)
asprintf (&output, _(" Probably a non-existent host/domain"));
- if (result == STATE_OK)
- printf (_("DNS OK - %d seconds response time (%s)\n"),
- (int) (end_time - start_time), output);
- else if (result == STATE_WARNING)
- printf (_("DNS WARNING - %s\n"), output);
+ if (elapsed_time > critical_interval)
+ die (STATE_CRITICAL,
+ _("DNS OK - %d seconds response time (%s)|time=%ldus\n"),
+ elapsed_time, output, microsec);
+
else if (result == STATE_CRITICAL)
- printf (_("DNS CRITICAL - %s\n"), output);
+ printf (_("DNS CRITICAL - %s|time=%ldus\n"), output);
+
+ else if (elapsed_time > warning_interval)
+ die (STATE_WARNING,
+ _("DNS OK - %d seconds response time (%s)|time=%ldus\n"),
+ elapsed_time, output, microsec);
+
+ else if (result == STATE_WARNING)
+ printf (_("DNS WARNING - %s|time=%ldus\n"), output);
+
+ else if (result == STATE_OK)
+ printf (_("DNS OK - %d seconds response time (%s)|time=%ldus\n"),
+ elapsed_time, output, microsec);
+
else
- printf (_("DNS problem - %s\n"), output);
+ printf (_("DNS problem - %s|time=%ldus\n"), output);
return result;
}