summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 7cb3ae0)
raw | patch | inline | side by side (parent: 7cb3ae0)
author | Matthias Eble <psychotrahe@gmx.de> | |
Mon, 1 Jun 2009 14:42:14 +0000 (16:42 +0200) | ||
committer | Matthias Eble <psychotrahe@gmx.de> | |
Mon, 1 Jun 2009 14:42:14 +0000 (16:42 +0200) |
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.
To protect compatibility, both options use fping's defaults if they
are not specified on the command line.
NEWS | patch | blob | history | |
plugins/check_fping.c | patch | blob | history |
index ab8844f2818fe189b70457625f1eb61682eaf21f..ecfd67e2eb69c6e111073d8567787dfaca74da0e 100644 (file)
--- a/NEWS
+++ b/NEWS
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)
diff --git a/plugins/check_fping.c b/plugins/check_fping.c
index 75c7860d681bdfc3e82935350c99796dd22697bf..b27389d723974b7d171f077e456fe7fe13289750 100644 (file)
--- a/plugins/check_fping.c
+++ b/plugins/check_fping.c
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;
char *server = NULL;
char *command_line = NULL;
char *input_buffer = NULL;
+ char *option_string = "";
input_buffer = malloc (MAX_INPUT_BUFFER);
setlocale (LC_ALL, "");
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);
{"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'},
}
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;
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;
}
}
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)"));
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);
}