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/41928-check_ssh.diff | 139 +++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 web/attachments/41928-check_ssh.diff (limited to 'web/attachments/41928-check_ssh.diff') diff --git a/web/attachments/41928-check_ssh.diff b/web/attachments/41928-check_ssh.diff new file mode 100644 index 0000000..fce5ad2 --- /dev/null +++ b/web/attachments/41928-check_ssh.diff @@ -0,0 +1,139 @@ +Index: plugins/check_ssh.c +=================================================================== +RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/check_ssh.c,v +retrieving revision 1.4 +diff -u -r1.4 check_ssh.c +--- plugins/check_ssh.c 13 Jan 2003 12:15:16 -0000 1.4 ++++ plugins/check_ssh.c 9 Feb 2003 19:32:30 -0000 +@@ -34,7 +34,6 @@ + void print_help (void); + void print_usage (void); + +-char *ssh_resolve (char *hostname); + int ssh_connect (char *haddr, short hport); + + int +@@ -49,7 +48,7 @@ + alarm (socket_timeout); + + /* ssh_connect exits if error is found */ +- ssh_connect (ssh_resolve (server_name), port); ++ ssh_connect (server_name, port); + + alarm (0); + +@@ -62,6 +61,7 @@ + process_arguments (int argc, char **argv) + { + int c; ++ char *tmp = NULL; + + #ifdef HAVE_GETOPT_H + int option_index = 0; +@@ -109,6 +109,8 @@ + socket_timeout = atoi (optarg); + break; + case 'H': /* host */ ++ if (is_host (optarg) == FALSE) ++ usage ("Invalid hostname/address\n"); + server_name = optarg; + break; + case 'p': /* port */ +@@ -125,9 +127,12 @@ + + c = optind; + if (server_name == NULL && argv[c]) { +- server_name = argv[c++]; ++ if (is_host (argv[c])) { ++ server_name = argv[c++]; ++ } + } +- else if (port == -1 && argv[c]) { ++ ++ if (port == -1 && argv[c]) { + if (is_intpos (argv[c])) { + port = atoi (argv[c++]); + } +@@ -153,26 +158,6 @@ + + /************************************************************************ + * +-* Resolve hostname into IP address +-* +-*-----------------------------------------------------------------------*/ +- +-char * +-ssh_resolve (char *hostname) +-{ +- struct hostent *host; +- +- host = gethostbyname (hostname); +- if (!host) { +- herror (hostname); +- exit (STATE_CRITICAL); +- } +- return (host->h_addr); +-} +- +- +-/************************************************************************ +-* + * Try to connect to SSH server at specified server and port + * + *-----------------------------------------------------------------------*/ +@@ -180,39 +165,24 @@ + int + ssh_connect (char *haddr, short hport) + { +- int s; +- struct sockaddr_in addr; +- int addrlen; +- int len; ++ int sock; ++ int result; + char *output = NULL; + char *buffer = NULL; + char *ssh_proto = NULL; + char *ssh_server = NULL; + char revision[20]; + +- sscanf ("$Revision: 1.4 $", "$Revision: %[0123456789.]", revision); ++ sscanf ("$Revision: 1.4 $", "$Revision: %[0-9.]", revision); + +- addrlen = sizeof (addr); +- memset (&addr, 0, addrlen); +- addr.sin_port = htons (hport); +- addr.sin_family = AF_INET; +- bcopy (haddr, (void *) &addr.sin_addr.s_addr, 4); +- +- s = socket (AF_INET, SOCK_STREAM, 0); +- if (!s) { +- printf ("socket(): %s for %s:%d\n", strerror (errno), server_name, hport); +- exit (STATE_CRITICAL); +- } ++ result = my_tcp_connect (haddr, hport, &sock); + +- if (connect (s, (struct sockaddr *) &addr, addrlen)) { +- printf ("connect(): %s for %s:%d\n", strerror (errno), server_name, +- hport); +- exit (STATE_CRITICAL); +- } ++ if (result != STATE_OK) ++ return result; + + output = (char *) malloc (BUFF_SZ + 1); + memset (output, 0, BUFF_SZ + 1); +- recv (s, output, BUFF_SZ, 0); ++ recv (sock, output, BUFF_SZ, 0); + if (strncmp (output, "SSH", 3)) { + printf ("Server answer: %s", output); + exit (STATE_CRITICAL); +@@ -228,7 +198,7 @@ + ("SSH ok - %s (protocol %s)\n", + ssh_server, ssh_proto); + asprintf (&buffer, "SSH-%s-check_ssh_%s\r\n", ssh_proto, revision); +- send (s, buffer, strlen (buffer), MSG_DONTWAIT); ++ send (sock, buffer, strlen (buffer), MSG_DONTWAIT); + if (verbose) + printf ("%s\n", buffer); + exit (STATE_OK); -- cgit v1.2.3-74-g34f1