From 7c11e0873c3c4e67671494911f6e59636931d729 Mon Sep 17 00:00:00 2001
From: Holger Weiss <hweiss@users.sourceforge.net>
Date: Mon, 22 Jan 2007 04:05:37 +0000
Subject: Added "-o,--ssh-option=OPTION" which hands "-o OPTION" over to ssh(1)
 and "-q,--quiet" which tells ssh(1) to suppress warnings (Gerhard Lausser -
 1472491)

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1574 f882894a-f735-0410-b71e-b25c423dba1c

diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c
index 1d39985..d1cbf93 100644
--- a/plugins/check_by_ssh.c
+++ b/plugins/check_by_ssh.c
@@ -166,6 +166,8 @@ process_arguments (int argc, char **argv)
 		{"proto2", no_argument, 0, '2'},
 		{"use-ipv4", no_argument, 0, '4'},
 		{"use-ipv6", no_argument, 0, '6'},
+		{"ssh-option", required_argument, 0, 'o'},
+		{"quiet", no_argument, 0, 'q'},
 		{0, 0, 0, 0}
 	};
 
@@ -177,7 +179,7 @@ process_arguments (int argc, char **argv)
 			strcpy (argv[c], "-t");
 
 	while (1) {
-		c = getopt_long (argc, argv, "Vvh1246ft:H:O:p:i:u:l:C:S:n:s:", longopts,
+		c = getopt_long (argc, argv, "Vvh1246fqt:H:O:p:i:u:l:C:S:n:s:o:", longopts,
 		                 &option);
 
 		if (c == -1 || c == EOF)
@@ -253,6 +255,12 @@ process_arguments (int argc, char **argv)
 			else
 				skip = atoi (optarg);
 			break;
+		case 'o':									/* Extra options for the ssh command */
+			asprintf (&comm, "%s -%c '%s'", comm, c, optarg);
+			break;
+		case 'q':									/* Tell the ssh command to be quiet */
+			asprintf (&comm, "%s -%c", comm, c);
+			break;
 		default:									/* help */
 			usage_va(_("Unknown argument - %s"), optarg);
 		}
@@ -344,6 +352,10 @@ print_help (void)
   printf ("    %s\n", _("list of nagios service names, separated by ':' [optional]"));
   printf (" %s\n","-n, --name=NAME");
   printf ("    %s\n", _("short name of host in nagios configuration [optional]"));
+  printf (" %s\n","-o, --ssh-option=OPTION");
+  printf ("    %s\n", _("Call ssh with '-o OPTION' (may be used multiple times) [optional]"));
+  printf (" %s\n","-q, --quiet");
+  printf ("    %s\n", _("Tell ssh to suppress warning and diagnostic messages [optional]"));
 	printf (_(UT_WARN_CRIT));
 	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
   printf (" %s\n", _("The most common mode of use is to refer to a local identity file with"));
@@ -371,6 +383,6 @@ void
 print_usage (void)
 {
 	printf (_("Usage:"));
-  printf(" %s [-f46] [-t timeout] [-i identity] [-l user] -H <host> -C <command>",progname);
-  printf(" [-n name] [-s servicelist] [-O outputfile] [-p port]\n");
+  printf(" %s [-fq46] [-t timeout] [-i identity] [-l user] -H <host> -C <command>",progname);
+  printf(" [-n name] [-s servicelist] [-O outputfile] [-p port] [-o ssh-option]\n");
 }
-- 
cgit v0.10-9-g596f

