summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2002-08-24 01:52:53 +0000
committerivan <ivan>2002-08-24 01:52:53 +0000
commit0b21b6e389571f9a7a87d0b6cbcba9b8c4f8f176 (patch)
tree57296306abb5a2d033cd1890ba514cf44bd49561
parentc7122c867aaed06f5493e3e11422fee91365d3e7 (diff)
-T option to quiet pseudo-terminal warnings
-rw-r--r--Changes3
-rw-r--r--SSH.pm23
2 files changed, 17 insertions, 9 deletions
diff --git a/Changes b/Changes
index ef1efec..bdb7eb7 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
Revision history for Perl extension Net::SSH.
+0.07 unreleased Fri Aug 23 18:37:49 2002
+ - turn on -T to quiet pseudo-terminal warnings on OpenSSH v2 or later
+
0.06 Wed Jul 3 07:52:15 2002
- patch from Anthony Awtrey <tony@awtrey.com> to use s/=/ / in -o
options again if OpenSSH v1 is detected
diff --git a/SSH.pm b/SSH.pm
index 35d20b3..639bf2b 100644
--- a/SSH.pm
+++ b/SSH.pm
@@ -1,7 +1,7 @@
package Net::SSH;
use strict;
-use vars qw($VERSION @ISA @EXPORT_OK $ssh $equalspace $DEBUG);
+use vars qw($VERSION @ISA @EXPORT_OK $ssh $equalspace $DEBUG @ssh_options);
use Exporter;
use IO::File;
use IPC::Open2;
@@ -9,7 +9,7 @@ use IPC::Open3;
@ISA = qw(Exporter);
@EXPORT_OK = qw( ssh issh ssh_cmd sshopen2 sshopen3 );
-$VERSION = '0.06';
+$VERSION = '0.07';
$DEBUG = 0;
@@ -59,8 +59,8 @@ Calls ssh in batch mode.
sub ssh {
my($host, @command) = @_;
- &_check_ssh_version unless defined $equalspace;
- my @cmd = ($ssh, '-o', 'BatchMode'.$equalspace.'yes', $host, @command);
+ @ssh_options = &_ssh_options unless @ssh_options;
+ my @cmd = ($ssh, @ssh_options, $host, @command);
warn "[Net::SSH::ssh] executing ". join(' ', @cmd). "\n"
if $DEBUG;
system(@cmd);
@@ -142,8 +142,8 @@ Connects the supplied filehandles to the ssh process (in batch mode).
sub sshopen2 {
my($host, $reader, $writer, @command) = @_;
- &_check_ssh_version unless defined $equalspace;
- open2($reader, $writer, $ssh, '-o', 'BatchMode'.$equalspace.'yes', $host, @command);
+ @ssh_options = &_ssh_options unless @ssh_options;
+ open2($reader, $writer, $ssh, @ssh_options, $host, @command);
}
=item sshopen3 HOST, WRITER, READER, ERROR, COMMAND [, ARGS ... ]
@@ -154,8 +154,8 @@ Connects the supplied filehandles to the ssh process (in batch mode).
sub sshopen3 {
my($host, $writer, $reader, $error, @command) = @_;
- &_check_ssh_version unless defined $equalspace;
- open3($writer, $reader, $error, $ssh, '-o', 'BatchMode'.$equalspace.'yes', $host, @command);
+ @ssh_options = &_ssh_options unless @ssh_options;
+ open3($writer, $reader, $error, $ssh, @ssh_options, $host, @command);
}
sub _yesno {
@@ -164,7 +164,7 @@ sub _yesno {
$x =~ /^y/i;
}
-sub _check_ssh_version {
+sub _ssh_options {
my $reader = IO::File->new();
my $writer = IO::File->new();
my $error = IO::File->new();
@@ -176,6 +176,11 @@ sub _check_ssh_version {
} else {
$equalspace = "=";
}
+ my @options = ( '-o', 'BatchMode'.$equalspace.'yes' )
+ if ( $ssh_version =~ /.*OpenSSH[-|_](\w+)\./ && $1 > 1 ) {
+ unshift @options, '-T';
+ }
+ @options;
}
=back