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

[email protected]
Newsgroups gmane.network.nagios.plugins.cvs
Message-ID <[email protected]>
Revision: 2204
          http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=2204&view=rev
Author:   dermoth
Date:     2009-06-01 14:49:15 +0000 (Mon, 01 Jun 2009)

Log Message:
-----------
check_fping now supports passing target timeout and interval to fping (#2347686 - Martin Foster)

Added support for passing timeout and interval length to check_fping.
To protect compatibility, both options use fping's defaults if they
are not specified on the command line.

From: Matthias Eble <[email protected]>

Modified Paths:
--------------
    nagiosplug/trunk/NEWS
    nagiosplug/trunk/plugins/check_fping.c

Modified: nagiosplug/trunk/NEWS
===================================================================
--- nagiosplug/trunk/NEWS	2009-05-28 12:13:17 UTC (rev 2203)
+++ nagiosplug/trunk/NEWS	2009-06-01 14:49:15 UTC (rev 2204)
@@ -38,6 +38,7 @@
 	Fixed wrong perfdata label for output traffic in check_mrtgtraf (#2654308 - Gavin Williams)
 	Fixed check_by_ssh interpretation of quotes in -C parameter (#1985246, #2268675)
 	check_snmp now supports standard threshold ranges and doubles (floating numbers) in thresholds
+	check_fping now supports passing target timeout and interval to fping (#2347686 - Martin Foster)
 
 1.4.13 25th Sept 2008
 	Fix Debian bug #460097: check_http --max-age broken (Hilko Bengen)

Modified: nagiosplug/trunk/plugins/check_fping.c
===================================================================
--- nagiosplug/trunk/plugins/check_fping.c	2009-05-28 12:13:17 UTC (rev 2203)
+++ nagiosplug/trunk/plugins/check_fping.c	2009-06-01 14:49:15 UTC (rev 2204)
@@ -54,6 +54,8 @@
 char *server_name = NULL;
 int packet_size = PACKET_SIZE;
 int packet_count = PACKET_COUNT;
+int target_timeout = 0;
+int packet_interval = 0;
 int verbose = FALSE;
 int cpl;
 int wpl;
@@ -73,6 +75,7 @@
   char *server = NULL;
   char *command_line = NULL;
   char *input_buffer = NULL;
+  char *option_string = "";
   input_buffer = malloc (MAX_INPUT_BUFFER);
 
   setlocale (LC_ALL, "");
@@ -88,9 +91,14 @@
   server = strscpy (server, server_name);
 
   /* compose the command */
-  asprintf (&command_line, "%s -b %d -c %d %s", PATH_TO_FPING,
-            packet_size, packet_count, server);
+  if (target_timeout)
+    asprintf(&option_string, "%s-t %d ", option_string, target_timeout);
+  if (packet_interval)
+    asprintf(&option_string, "%s-p %d ", option_string, packet_interval);
 
+  asprintf (&command_line, "%s %s-b %d -c %d %s", PATH_TO_FPING,
+            option_string, packet_size, packet_count, server);
+
   if (verbose)
     printf ("%s\n", command_line);
 
@@ -228,6 +236,8 @@
     {"warning", required_argument, 0, 'w'},
     {"bytes", required_argument, 0, 'b'},
     {"number", required_argument, 0, 'n'},
+    {"target-timeout", required_argument, 0, 'T'},
+    {"interval", required_argument, 0, 'i'},
     {"verbose", no_argument, 0, 'v'},
     {"version", no_argument, 0, 'V'},
     {"help", no_argument, 0, 'h'},
@@ -248,7 +258,7 @@
   }
 
   while (1) {
-    c = getopt_long (argc, argv, "+hVvH:c:w:b:n:", longopts, &option);
+    c = getopt_long (argc, argv, "+hVvH:c:w:b:n:T:i:", longopts, &option);
 
     if (c == -1 || c == EOF || c == 1)
       break;
@@ -309,6 +319,18 @@
       else
         usage (_("Packet count must be a positive integer"));
       break;
+    case 'T':                 /* timeout in msec */
+      if (is_intpos (optarg))
+        target_timeout = atoi (optarg);
+      else
+        usage (_("Target timeout must be a positive integer"));
+      break;
+    case 'i':                 /* interval in msec */
+      if (is_intpos (optarg))
+        packet_interval = atoi (optarg);
+      else
+        usage (_("Interval must be a positive integer"));
+      break;
     }
   }
 
@@ -390,6 +412,10 @@
   printf ("    %s (default: %d)\n", _("size of ICMP packet"),PACKET_SIZE);
   printf (" %s\n", "-n, --number=INTEGER");
   printf ("    %s (default: %d)\n", _("number of ICMP packets to send"),PACKET_COUNT);
+  printf (" %s\n", "-T, --target-timeout=INTEGER");
+  printf ("    %s (default: fping's default for -t)\n", _("Target timeout (ms)"),PACKET_COUNT);
+  printf (" %s\n", "-i, --interval=INTEGER");
+  printf ("    %s (default: fping's default for -p)\n", _("Interval (ms) between sending packets"),PACKET_COUNT);
   printf (_(UT_VERBOSE));
   printf ("\n");
   printf (" %s\n", _("THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time (ms)"));
@@ -410,5 +436,5 @@
 print_usage (void)
 {
   printf (_("Usage:"));
-  printf (" %s <host_address> -w limit -c limit [-b size] [-n number]\n", progname);
+  printf (" %s <host_address> -w limit -c limit [-b size] [-n number] [-T number] [-i number]\n", progname);
 }


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

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
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.