SF.net SVN: nagiosplug:[2073] nagiosplug/trunk

[email protected]
Newsgroups gmane.network.nagios.plugins.cvs
Message-ID <[email protected]>
Revision: 2073
          http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=2073&view=rev
Author:   dermoth
Date:     2008-11-07 01:41:17 +0000 (Fri, 07 Nov 2008)

Log Message:
-----------
check_icmp now reports min and max round trip time perfdata (Steve Rader)

Modified Paths:
--------------
    nagiosplug/trunk/NEWS
    nagiosplug/trunk/THANKS.in
    nagiosplug/trunk/plugins-root/check_icmp.c

Modified: nagiosplug/trunk/NEWS
===================================================================
--- nagiosplug/trunk/NEWS	2008-11-05 21:36:43 UTC (rev 2072)
+++ nagiosplug/trunk/NEWS	2008-11-07 01:41:17 UTC (rev 2073)
@@ -11,6 +11,7 @@
 	Fixed dependency issue on libtap when ./configure --enable-libtap used. Warning: will install libtap
 	Fixed segfault in extra-opts under some circumstance when reading multiple sections
 	Fix long options parsing in check_tcp
+	check_icmp now reports min and max round trip time perfdata (Steve Rader)
 
 1.4.13 25th Sept 2008
 	Fix Debian bug #460097: check_http --max-age broken (Hilko Bengen)

Modified: nagiosplug/trunk/THANKS.in
===================================================================
--- nagiosplug/trunk/THANKS.in	2008-11-05 21:36:43 UTC (rev 2072)
+++ nagiosplug/trunk/THANKS.in	2008-11-07 01:41:17 UTC (rev 2073)
@@ -240,3 +240,4 @@
 Erik Wasser
 Tilman Koschnick
 Olivier 'Babar' Raginel
+Steve Rader

Modified: nagiosplug/trunk/plugins-root/check_icmp.c
===================================================================
--- nagiosplug/trunk/plugins-root/check_icmp.c	2008-11-05 21:36:43 UTC (rev 2072)
+++ nagiosplug/trunk/plugins-root/check_icmp.c	2008-11-07 01:41:17 UTC (rev 2073)
@@ -106,6 +106,9 @@
 # define ICMP_UNREACH_PRECEDENCE_CUTOFF 15
 #endif
 
+#ifndef DBL_MAX
+# define DBL_MAX 9.9999999999e999
+#endif
 
 typedef unsigned short range_t;  /* type for get_range() -- unimplemented */
 
@@ -120,6 +123,8 @@
 	unsigned char icmp_type, icmp_code; /* type and code from errors */
 	unsigned short flags;        /* control/status flags */
 	double rta;                  /* measured RTA */
+	double rtmax;                /* max rtt */
+	double rtmin;                /* min rtt */
 	unsigned char pl;            /* measured packet loss */
 	struct rta_host *next;       /* linked list */
 } rta_host;
@@ -782,11 +787,15 @@
 		host->time_waited += tdiff;
 		host->icmp_recv++;
 		icmp_recv++;
+		if (tdiff > host->rtmax)
+			host->rtmax = tdiff;
+		if (tdiff < host->rtmin)
+			host->rtmin = tdiff;
 
 		if(debug) {
-			printf("%0.3f ms rtt from %s, outgoing ttl: %u, incoming ttl: %u\n",
+			printf("%0.3f ms rtt from %s, outgoing ttl: %u, incoming ttl: %u, max: %0.3f, min: %0.3f\n",
 				   (float)tdiff / 1000, inet_ntoa(resp_addr.sin_addr),
-				   ttl, ip->ip_ttl);
+				   ttl, ip->ip_ttl, (float)host->rtmax / 1000, (float)host->rtmin / 1000);
 		}
 
 		/* if we're in hostcheck mode, exit with limited printouts */
@@ -993,11 +1002,12 @@
 	host = list;
 	while(host) {
 		if(debug) puts("");
-		printf("%srta=%0.3fms;%0.3f;%0.3f;0; %spl=%u%%;%u;%u;; ",
+		printf("%srta=%0.3fms;%0.3f;%0.3f;0; %spl=%u%%;%u;%u;; %srtmax=%0.3fms;;;; %srtmin=%0.3fms;;;; ",
 			   (targets > 1) ? host->name : "",
 			   host->rta / 1000, (float)warn.rta / 1000, (float)crit.rta / 1000,
-			   (targets > 1) ? host->name : "",
-			   host->pl, warn.pl, crit.pl);
+			   (targets > 1) ? host->name : "", host->pl, warn.pl, crit.pl,
+			   (targets > 1) ? host->name : "", (float)host->rtmax / 1000,
+			   (targets > 1) ? host->name : "", (host->rtmin < DBL_MAX) ? (float)host->rtmin / 1000 : (float)0);
 
 		host = host->next;
 	}
@@ -1074,6 +1084,8 @@
 	host->saddr_in.sin_family = AF_INET;
 	host->saddr_in.sin_addr.s_addr = in->s_addr;
 
+	host->rtmin = DBL_MAX;
+
 	if(!list) list = cursor = host;
 	else cursor->next = host;
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.