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. --- .../154515-nagios_plugins-check_ssh.c.patch | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 web/attachments/154515-nagios_plugins-check_ssh.c.patch (limited to 'web/attachments/154515-nagios_plugins-check_ssh.c.patch') diff --git a/web/attachments/154515-nagios_plugins-check_ssh.c.patch b/web/attachments/154515-nagios_plugins-check_ssh.c.patch new file mode 100644 index 0000000..da31ea2 --- /dev/null +++ b/web/attachments/154515-nagios_plugins-check_ssh.c.patch @@ -0,0 +1,98 @@ +--- ../../original_sources/nagios-plugins-1.4.2/plugins/check_ssh.c 2005-04-11 14:02:40.000000000 -0400 ++++ nagios-plugins-1.4.2/plugins/check_ssh.c 2005-10-31 09:04:34.000000000 -0500 +@@ -36,7 +36,8 @@ + + int port = -1; + char *server_name = NULL; +-char *remote_version = NULL; ++int remote_versions = 0; ++char **remote_version; + int verbose = FALSE; + + int process_arguments (int, char **); +@@ -44,7 +45,7 @@ + void print_help (void); + void print_usage (void); + +-int ssh_connect (char *haddr, int hport, char *remote_version); ++int ssh_connect (char *haddr, int hport, char **remote_version); + + + +@@ -136,9 +137,13 @@ + usage4 (_("IPv6 support not available")); + #endif + break; +- case 'r': /* remote version */ +- remote_version = optarg; +- break; ++ case 'r': /* remote version multiple occurances allowed */ ++ if (verbose) printf("pre-parsing %s-%d\n",optarg, remote_versions); ++ remote_version = realloc(remote_version, (++remote_versions) * sizeof(char *)); ++ if (verbose) printf("post-parsing %s\n",optarg); ++ ++ remote_version[remote_versions - 1] = optarg; ++ break; + case 'H': /* host */ + if (is_host (optarg) == FALSE) + usage2 (_("Invalid hostname/address"), optarg); +@@ -193,7 +198,7 @@ + + + int +-ssh_connect (char *haddr, int hport, char *remote_version) ++ssh_connect (char *haddr, int hport, char **remote_version) + { + int sd; + int result; +@@ -202,6 +207,7 @@ + char *ssh_proto = NULL; + char *ssh_server = NULL; + char rev_no[20]; ++ int remote_versions_i; + + sscanf ("$Revision: 1.27 $", "$Revision: %[0123456789.]", rev_no); + +@@ -230,11 +236,26 @@ + if (verbose) + printf ("%s\n", buffer); + +- if (remote_version && strcmp(remote_version, ssh_server)) { +- printf +- (_("SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n"), +- ssh_server, ssh_proto, remote_version); +- exit (STATE_WARNING); ++ if ( remote_versions ) { ++ remote_versions_i = remote_versions; ++ while ( remote_versions_i > 0) { ++ if (verbose) printf("Comparing server '%s' to -r opt '%s'\n", ssh_server, remote_version[remote_versions_i -1]); ++ if ( ! strcmp(remote_version[remote_versions_i - 1], ssh_server)) { ++ break; ++ } else { ++ remote_versions_i--; ++ } ++ } ++ if (remote_versions_i == 0) { ++ printf ++ (_("SSH WARNING - '%s' (protocol %s) version mismatch, expected "), ++ ssh_server, ssh_proto); ++ while (remote_versions > 0) { ++ printf("'%s'%s", remote_version[remote_versions -1], remote_versions == 1?".\n":", "); ++ remote_versions --; ++ } ++ exit (STATE_WARNING); ++ } + } + + printf +@@ -272,7 +293,9 @@ + + printf (_("\ + -r, --remote-version=STRING\n\ +- Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)\n")); ++ Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1).\n")); ++ printf (_("\ ++ Can use multiple times to accept multiple version strings.\n")); + + printf (_(UT_VERBOSE)); + -- cgit v1.2.3-74-g34f1