r4727 add a netcat proxy script (based on existing ssh script)
authorDenis Ovsienko <infrastation@yandex.ru>
Wed, 10 Aug 2011 11:32:27 +0000 (11:32 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Wed, 10 Aug 2011 11:32:27 +0000 (11:32 +0000)
gateways/netcat [new file with mode: 0755]

diff --git a/gateways/netcat b/gateways/netcat
new file mode 100755 (executable)
index 0000000..e163c05
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+
+use strict;
+use Getopt::Long;
+
+my @orig_params = @ARGV;
+
+# fetch command-line parameters
+my $op_help;
+my $op_port = 23;
+my $op_ncbin = '/usr/bin/nc';
+my $op_connect_timeout = 30;
+GetOptions (
+    'h' => \$op_help,
+    'port|p:i' => \$op_port,
+    'ncbin|b:s' => \$op_ncbin,
+    'connect-timeout|w:i' => \$op_connect_timeout,
+);
+if ($op_help) {
+    &display_help;
+    exit;
+}
+my $op_host = $ARGV[0];
+defined $op_host or die "ERROR: missing hostname argument (-h for help)";
+
+sub display_help {
+    print <<END;
+netcat wrapper script for RackTables
+Usage: 
+$0 <hostname> [-b </path/to/netcat/binary>] [-p <port>] [--connect-timeout=<seconds>]
+ -p, --port             TCP port number to connect to (defaults to 23)
+ -b, --ncbin            Full path to netcat binary (defaults to $op_ncbin)
+ -w, --connect-timeout  netcat timeout (defaults to $op_connect_timeout)
+
+END
+}
+
+my @params;
+push @params, '-w', $op_connect_timeout;
+
+exec ($op_ncbin, $op_host, $op_port, @params) or die "cannot exec $op_ncbin: $!";