my $ssh2 = get_tiny_ssh2();
my $block1 = 0;
my $block2 = 0;
my $block3 = 0;
my $chan = $ssh2->channel();
$chan->blocking($block1);
$chan->exec('ls -la');
while (<$chan>) { print }
$chan->close;
#shell use
my $chan2 = $ssh2->channel();
$chan2->blocking($block2); #line 21
####
Calling Net::SSH2::Channel::readline in non-blocking mode is usually a programming error at ./5.ssh2_1.pl line 16.
Can't call method "blocking" on an undefined value at ./5.ssh2_1.pl line 21.
$
####
Can't call method "error" on an undefined value at /usr/local/share/perl/5.26.1/Net/SFTP/Foreign/Backend/Net_SSH2.pm line 43.
$ cat 5.ssh2_1.pl
...
my $block1 = 1;
my $block2 = 1;
my $block3 = 0;
my $chan = $ssh2->channel();
$chan->blocking($block1);
$chan->exec('ls -la');
while (<$chan>) { print }
$chan->close;
#shell use
my $chan2 = $ssh2->channel();
$chan2->blocking($block2);
$chan2->shell();
print $chan2 "uname -a\n";
print "LINE : $_" while <$chan2>;
$chan2->close;
say "execution goes through here";
my $chan3 = $ssh2->channel();
$chan3->blocking($block3); ##line 43
$chan3->exec('pwd');
while (<$chan>) { print }
$chan3->close;
####
drwxr-xr-x 2 u61210220 ftpusers 61 Jun 9 2011 zen
libssh2_channel_open_ex(ss->session, mandatory_type, strlen(mandatory_type), window_size, packet_size, ((void *)0) , 0 ) -> 0x0
Can't call method "blocking" on an undefined value at ./6.ssh2_1.pl line 23.
Net::SSH2::Channel::DESTROY
Net::SSH2::DESTROY object 0xbd630ac0
$
####
Net::SSH2::Channel::read(size = 4, ext = 0)
- read 4 bytes
- read 4 total
Net::SSH2::Channel::read(size = 150, ext = 0)
- read 150 bytes
- read 150 total
Net::SSH2::Channel::read(size = 4, ext = 0)
- read 4 bytes
- read 4 total
Net::SSH2::Channel::read(size = 29, ext = 0)
- read 29 bytes
- read 29 total
Can't call method "read" on an undefined value at ./5.ssh2_1.pl line 42.
Net::SSH2::Channel::DESTROY
Net::SSH2::Channel::DESTROY
Net::SSH2::Channel::DESTROY
Net::SSH2::Channel::DESTROY
Net::SSH2::DESTROY object 0xc71e2800
####
my $block1 = 1;
my $block2 = 1;
my $block3 = 1;
my $chan = $ssh2->channel();
$chan->blocking($block1);
$chan->exec('ls -la');
while (<$chan>) { print }
$block1 = 0;
$chan->blocking($block1);
$chan->close;