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. --- web/attachments/85410-check_dig.c.patch | 151 ++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 web/attachments/85410-check_dig.c.patch (limited to 'web/attachments/85410-check_dig.c.patch') diff --git a/web/attachments/85410-check_dig.c.patch b/web/attachments/85410-check_dig.c.patch new file mode 100644 index 0000000..b4fedc2 --- /dev/null +++ b/web/attachments/85410-check_dig.c.patch @@ -0,0 +1,151 @@ +--- check_dig.c.orig Thu Apr 15 12:38:19 2004 ++++ check_dig.c Fri Apr 16 16:20:03 2004 +@@ -37,6 +37,8 @@ + }; + + char *query_address = NULL; ++char *record_type = "A"; ++char *expected_address = NULL; + char *dns_server = NULL; + int verbose = FALSE; + int server_port = DEFAULT_PORT; +@@ -68,14 +70,20 @@ + usage (_("Could not parse arguments\n")); + + /* get the command to run */ +- asprintf (&command_line, "%s @%s -p %d %s", +- PATH_TO_DIG, dns_server, server_port, query_address); ++ asprintf (&command_line, "%s @%s -p %d %s -t %s", ++ PATH_TO_DIG, dns_server, server_port, query_address, record_type); + + alarm (timeout_interval); + gettimeofday (&tv, NULL); + +- if (verbose) ++ if (verbose) { + printf ("%s\n", command_line); ++ if(expected_address != NULL) { ++ printf ("Looking for: '%s'\n", expected_address); ++ } else { ++ printf ("Looking for: '%s'\n", query_address); ++ } ++ } + + /* run the command */ + child_process = spopen (command_line); +@@ -93,28 +101,39 @@ + /* the server is responding, we just got the host name... */ + if (strstr (input_buffer, ";; ANSWER SECTION:")) { + +- /* get the host address */ +- if (!fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) +- break; +- +- if (strpbrk (input_buffer, "\r\n")) +- input_buffer[strcspn (input_buffer, "\r\n")] = '\0'; +- +- if (strstr (input_buffer, query_address) == input_buffer) { +- output = strdup(input_buffer); +- result = STATE_OK; +- } +- else { +- asprintf (&output, _("Server not found in ANSWER SECTION")); +- result = STATE_WARNING; +- } ++ /* loop through the whole 'ANSWER SECTION' */ ++ do { ++ /* get the host address */ ++ if (!fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) ++ break; ++ ++ if (strpbrk (input_buffer, "\r\n")) ++ input_buffer[strcspn (input_buffer, "\r\n")] = '\0'; ++ ++ if (verbose && !strstr (input_buffer, ";; ")) ++ printf ("%s\n", input_buffer); ++ ++ if (expected_address==NULL && strstr (input_buffer, query_address) != NULL) { ++ output = strdup(input_buffer); ++ result = STATE_OK; ++ } ++ else if (expected_address != NULL && strstr (input_buffer, expected_address) != NULL) { ++ output = strdup(input_buffer); ++ result = STATE_OK; ++ } ++ ++ } while (!strstr (input_buffer, ";; ")); ++ ++ if (result == STATE_UNKNOWN) { ++ asprintf (&output, _("Server not found in ANSWER SECTION")); ++ result = STATE_WARNING; ++ } + +- continue; + } + + } + +- if (result != STATE_OK) { ++ if (result == STATE_UNKNOWN) { + asprintf (&output, _("No ANSWER SECTION found")); + } + +@@ -181,6 +200,8 @@ + {"verbose", no_argument, 0, 'v'}, + {"version", no_argument, 0, 'V'}, + {"help", no_argument, 0, 'h'}, ++ {"record_type", required_argument, 0, 'T'}, ++ {"expected_address", required_argument, 0, 'a'}, + {0, 0, 0, 0} + }; + +@@ -188,7 +209,7 @@ + return ERROR; + + while (1) { +- c = getopt_long (argc, argv, "hVvt:l:H:w:c:", longopts, &option); ++ c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:a:", longopts, &option); + + if (c == -1 || c == EOF) + break; +@@ -248,6 +269,12 @@ + case 'v': /* verbose */ + verbose = TRUE; + break; ++ case 'T': ++ record_type = optarg; ++ break; ++ case 'a': ++ expected_address = optarg; ++ break; + } + } + +@@ -309,6 +336,15 @@ + -l, --lookup=STRING\n\ + machine name to lookup\n")); + ++ printf (_("\ ++ -T, --record_type=STRING\n\ ++ record type to lookup (default: A)\n")); ++ ++ printf (_("\ ++ -a, --expected_address=STRING\n\ ++ an address expected to be in the asnwer section.\n\ ++ if not set, uses whatever was in -l\n")); ++ + printf (_(UT_WARN_CRIT)); + + printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); +@@ -325,8 +361,9 @@ + print_usage (void) + { + printf (_("\ +-Usage: %s -H host -l lookup [-p ] [-w ]\n\ +- [-c ] [-t ] [-v]\n"), ++Usage: %s -H host -l lookup [-p ] [-T ]\n\ ++ [-w ] [-c ] [-t ]\n\ ++ [-a ] [-v]\n"), + progname); + printf (" %s (-h|--help)\n", progname); + printf (" %s (-V|--version)\n", progname); -- cgit v1.2.3-74-g34f1