浏览代码

Timings in milliseconds and nicer output

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@400 f882894a-f735-0410-b71e-b25c423dba1c
Ton Voon 23 年之前
父节点
当前提交
2eca952f26
共有 1 个文件被更改,包括 14 次插入5 次删除
  1. 14 5
      plugins/check_dns.c

+ 14 - 5
plugins/check_dns.c

@@ -75,6 +75,9 @@ main (int argc, char **argv)
 	char *address = NULL;
 	char *temp_buffer = NULL;
 	int result = STATE_UNKNOWN;
+	double elapsed_time;
+	struct timeval tv;
+	int multi_address;
 
 	/* Set signal handling and alarm */
 	if (signal (SIGALRM, popen_timeout_alarm_handler) == SIG_ERR) {
@@ -91,7 +94,7 @@ main (int argc, char **argv)
 	asprintf (&command_line, "%s %s %s", NSLOOKUP_COMMAND,	query_address, dns_server);
 
 	alarm (timeout_interval);
-	time (&start_time);
+	gettimeofday (&tv, NULL);
 
 	if (verbose)
 		printf ("%s\n", command_line);
@@ -180,11 +183,17 @@ main (int argc, char **argv)
 	        asprintf(&output, "expected %s but got %s", expected_address, address);
 		}
 	
-	(void) time (&end_time);
+	elapsed_time = delta_time (tv);
 
-	if (result == STATE_OK)
-		printf ("DNS ok - %d seconds response time, Address(es) is/are %s\n",
-						(int) (end_time - start_time), address);
+	if (result == STATE_OK) {
+		if (strchr (address, ',') == NULL)
+			multi_address = FALSE;
+		else
+			multi_address = TRUE;
+
+		printf ("DNS ok - %-7.3f seconds response time, address%s %s|time=%-7.3f\n",
+		  elapsed_time, (multi_address==TRUE ? "es are" : " is"), address, elapsed_time);
+	}
 	else if (result == STATE_WARNING)
 		printf ("DNS WARNING - %s\n",
 			!strcmp (output, "") ? " Probably a non-existent host/domain" : output);