diff options
Diffstat (limited to 'web/attachments/200576-ssh_connect_parse.patch')
| -rw-r--r-- | web/attachments/200576-ssh_connect_parse.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/web/attachments/200576-ssh_connect_parse.patch b/web/attachments/200576-ssh_connect_parse.patch new file mode 100644 index 0000000..7f7e707 --- /dev/null +++ b/web/attachments/200576-ssh_connect_parse.patch | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | diff -ruN nagios-plugins-1.4.4.orig/plugins/check_ssh.c nagios-plugins-1.4.4/plugins/check_ssh.c | ||
| 2 | --- nagios-plugins-1.4.4.orig/plugins/check_ssh.c 2006-06-21 07:05:00.000000000 -0400 | ||
| 3 | +++ nagios-plugins-1.4.4/plugins/check_ssh.c 2006-10-29 20:20:11.000000000 -0500 | ||
| 4 | @@ -50,6 +50,7 @@ | ||
| 5 | int port = -1; | ||
| 6 | char *server_name = NULL; | ||
| 7 | char *remote_version = NULL; | ||
| 8 | +char *parse_remote_version = NULL; | ||
| 9 | int verbose = FALSE; | ||
| 10 | |||
| 11 | int process_arguments (int, char **); | ||
| 12 | @@ -57,7 +58,7 @@ | ||
| 13 | void print_help (void); | ||
| 14 | void print_usage (void); | ||
| 15 | |||
| 16 | -int ssh_connect (char *haddr, int hport, char *remote_version); | ||
| 17 | +int ssh_connect (char *haddr, int hport, char *remote_version, char *parse_remote_version); | ||
| 18 | |||
| 19 | |||
| 20 | |||
| 21 | @@ -79,7 +80,7 @@ | ||
| 22 | alarm (socket_timeout); | ||
| 23 | |||
| 24 | /* ssh_connect exits if error is found */ | ||
| 25 | - result = ssh_connect (server_name, port, remote_version); | ||
| 26 | + result = ssh_connect (server_name, port, remote_version, parse_remote_version); | ||
| 27 | |||
| 28 | alarm (0); | ||
| 29 | |||
| 30 | @@ -105,6 +106,7 @@ | ||
| 31 | {"timeout", required_argument, 0, 't'}, | ||
| 32 | {"verbose", no_argument, 0, 'v'}, | ||
| 33 | {"remote-version", required_argument, 0, 'r'}, | ||
| 34 | + {"parse-remote-version", required_argument, 0, 's'}, | ||
| 35 | {0, 0, 0, 0} | ||
| 36 | }; | ||
| 37 | |||
| 38 | @@ -116,7 +118,7 @@ | ||
| 39 | strcpy (argv[c], "-t"); | ||
| 40 | |||
| 41 | while (1) { | ||
| 42 | - c = getopt_long (argc, argv, "+Vhv46t:r:H:p:", longopts, &option); | ||
| 43 | + c = getopt_long (argc, argv, "+Vhv46t:r:s:H:p:", longopts, &option); | ||
| 44 | |||
| 45 | if (c == -1 || c == EOF) | ||
| 46 | break; | ||
| 47 | @@ -152,6 +154,9 @@ | ||
| 48 | case 'r': /* remote version */ | ||
| 49 | remote_version = optarg; | ||
| 50 | break; | ||
| 51 | + case 's': /* remote version */ | ||
| 52 | + parse_remote_version = optarg; | ||
| 53 | + break; | ||
| 54 | case 'H': /* host */ | ||
| 55 | if (is_host (optarg) == FALSE) | ||
| 56 | usage2 (_("Invalid hostname/address"), optarg); | ||
| 57 | @@ -206,7 +211,7 @@ | ||
| 58 | |||
| 59 | |||
| 60 | int | ||
| 61 | -ssh_connect (char *haddr, int hport, char *remote_version) | ||
| 62 | +ssh_connect (char *haddr, int hport, char *remote_version, char *parse_remote_version) | ||
| 63 | { | ||
| 64 | int sd; | ||
| 65 | int result; | ||
| 66 | @@ -248,6 +253,11 @@ | ||
| 67 | (_("SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n"), | ||
| 68 | ssh_server, ssh_proto, remote_version); | ||
| 69 | exit (STATE_WARNING); | ||
| 70 | + } else if (parse_remote_version && !strstr(parse_remote_version, ssh_server)) { | ||
| 71 | + printf | ||
| 72 | + (_("SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n"), | ||
| 73 | + ssh_server, ssh_proto, parse_remote_version); | ||
| 74 | + exit (STATE_WARNING); | ||
| 75 | } | ||
| 76 | |||
| 77 | printf | ||
| 78 | @@ -285,6 +295,9 @@ | ||
| 79 | |||
| 80 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); | ||
| 81 | |||
| 82 | + printf (" %s\n", "-s, --parse-remote-version=STRING"); | ||
| 83 | + printf (" %s\n", _("Warn if STRING isnt in server version(ex: SSH)")); | ||
| 84 | + | ||
| 85 | printf (" %s\n", "-r, --remote-version=STRING"); | ||
| 86 | printf (" %s\n", _("Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)")); | ||
| 87 | |||
| 88 | @@ -299,6 +312,6 @@ | ||
| 89 | print_usage (void) | ||
| 90 | { | ||
| 91 | printf (_("Usage:")); | ||
| 92 | - printf ("%s [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>\n", progname); | ||
| 93 | + printf ("%s [-46] [-t <timeout>] [-r <remote version> | -s <remote string>] [-p <port>] <host>\n", progname); | ||
| 94 | } | ||
| 95 | |||
