From 0b21b6e389571f9a7a87d0b6cbcba9b8c4f8f176 Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 24 Aug 2002 01:52:53 +0000 Subject: [PATCH] -T option to quiet pseudo-terminal warnings --- Changes | 3 +++ SSH.pm | 23 ++++++++++++++--------- 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 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 -- 2.11.0