From 0b6423f9c99d9edf8c96fefd0f6c453859395aa1 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 30 Sep 2013 00:03:24 +0200 Subject: Import Nagios Plugins site Import the Nagios Plugins web site, Cronjobs, infrastructure scripts, and configuration files. --- ...-nagios-plugins-1.4.3.ping_source_address.patch | 114 +++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 web/attachments/180341-nagios-plugins-1.4.3.ping_source_address.patch (limited to 'web/attachments/180341-nagios-plugins-1.4.3.ping_source_address.patch') diff --git a/web/attachments/180341-nagios-plugins-1.4.3.ping_source_address.patch b/web/attachments/180341-nagios-plugins-1.4.3.ping_source_address.patch new file mode 100644 index 0000000..1560a41 --- /dev/null +++ b/web/attachments/180341-nagios-plugins-1.4.3.ping_source_address.patch @@ -0,0 +1,114 @@ +diff -uNr nagios-plugins-1.4.3.old/plugins/check_ping.c nagios-plugins-1.4.3/plugins/check_ping.c +--- nagios-plugins-1.4.3.old/plugins/check_ping.c 2006-03-13 06:08:28.000000000 -0500 ++++ nagios-plugins-1.4.3/plugins/check_ping.c 2006-05-19 11:33:42.000000000 -0400 +@@ -50,6 +50,7 @@ + float wrta = UNKNOWN_TRIP_TIME; + float crta = UNKNOWN_TRIP_TIME; + char **addresses = NULL; ++char *source_address; + int n_addresses = 0; + int max_addr = 1; + int max_packets = -1; +@@ -67,6 +68,7 @@ + { + char *cmd = NULL; + char *rawcmd = NULL; ++ char *ping_args = NULL; + int result = STATE_UNKNOWN; + int this_result = STATE_UNKNOWN; + int i; +@@ -101,15 +103,28 @@ + rawcmd = strdup(PING_COMMAND); + #endif + ++ ping_args = strdup(""); ++ ++ /* Need to check ping -I in configure and enclose this in ifdef */ ++ if (source_address != NULL) { ++ ping_args = realloc (ping_args, 20 * sizeof(char)); ++ ping_args = strcat(ping_args, "-I "); ++ ping_args = strncat(ping_args, source_address, 15 * sizeof(char)); ++ ping_args = strcat(ping_args, " "); ++ } ++ ++ ping_args = realloc (ping_args, strlen(ping_args) + strlen(addresses[i]) + 1); ++ ping_args = strcat(ping_args, addresses[i]); ++ + /* does the host address of number of packets argument come first? */ + #ifdef PING_PACKETS_FIRST + # ifdef PING_HAS_TIMEOUT +- asprintf (&cmd, rawcmd, timeout_interval, max_packets, addresses[i]); ++ asprintf (&cmd, rawcmd, timeout_interval, max_packets, ping_args); + # else +- asprintf (&cmd, rawcmd, max_packets, addresses[i]); ++ asprintf (&cmd, rawcmd, max_packets, ping_args); + # endif + #else +- asprintf (&cmd, rawcmd, addresses[i], max_packets); ++ asprintf (&cmd, rawcmd, ping_args, max_packets); + #endif + + if (verbose >= 2) +@@ -150,6 +165,7 @@ + printf ("%f:%d%% %f:%d%%\n", wrta, wpl, crta, cpl); + + result = max_state (result, this_result); ++ free (ping_args); + free (rawcmd); + free (cmd); + } +@@ -170,6 +186,7 @@ + static struct option longopts[] = { + STD_LONG_OPTS, + {"packets", required_argument, 0, 'p'}, ++ {"source", required_argument, 0, 's'}, + {"nohtml", no_argument, 0, 'n'}, + {"link", no_argument, 0, 'L'}, + {"use-ipv4", no_argument, 0, '4'}, +@@ -188,7 +205,7 @@ + } + + while (1) { +- c = getopt_long (argc, argv, "VvhnL46t:c:w:H:p:", longopts, &option); ++ c = getopt_long (argc, argv, "VvhnL46t:c:w:H:p:s:", longopts, &option); + + if (c == -1 || c == EOF) + break; +@@ -245,6 +262,9 @@ + else + usage2 (_(" (%s) must be a non-negative number\n"), optarg); + break; ++ case 's': /* number of packets to send */ ++ source_address = strdup (optarg); ++ break; + case 'n': /* no HTML */ + display_html = FALSE; + break; +@@ -396,6 +416,11 @@ + usage (_("You must specify a server address or host name")); + } + ++ if (source_address != NULL) { ++ if (is_addr(source_address) == FALSE) ++ usage2 (_("Invalid source address"), source_address); ++ } ++ + return OK; + } + +@@ -535,6 +560,8 @@ + critical threshold pair\n\ + -p, --packets=INTEGER\n\ + number of ICMP ECHO packets to send (Default: %d)\n\ ++-s, --source=IP\n\ ++ source address\n\ + -L, --link\n\ + show HTML in the plugin output (obsoleted by urlize)\n"), + DEFAULT_MAX_PACKETS); +@@ -559,5 +586,5 @@ + print_usage (void) + { + printf ("Usage: %s -H -w ,%% -c ,%%\n\ +- [-p packets] [-t timeout] [-L] [-4|-6]\n", progname); ++ [-p packets] [-s source_address] [-t timeout] [-L] [-4|-6]\n", progname); + } -- cgit v1.2.3-74-g34f1