подскажите как в перле создать однопотоковое соединение ssh2, т.е. мне нужно передать вот такое занчение, видел кучу примеров, но все как-то много там написано. подскажите как кароче всего?
Можно ли это начение в options или type как-нибуть засунуть?
SSH2_MSG_CHANNEL_OPEN_CONFIRMATION);
ну например у меня вот так вот не пашет, т.е. как будто опять выполняется в еще одном потоке, а мне нужно в том же...
my $ssh = new Net::SSH::W32Perl (
$host,
protocol => 2,
port => 22,
match => '/yes/',
debug => 1 );
my $pack = Net::SSH::Perl::Packet->new($ssh, type => SSH2_MSG_CHANNEL_OPEN_CONFIRMATION);
my $buffer = $ssh->packet_start(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION);
pack->send;
можно заюзать функцию, например...
$ssh->register_handler(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION,
sub{
my($channel, $buffer) = @_;
});
Send a packet to an ssh daemon.
my $pack = Net::SSH::Perl::Packet->new($ssh, type => SSH_MSG_NONE);
$pack->send;
my $channel = $ssh->login('testowiy', 'test');
_session_channel;
$channel->open;
$channel->register_handler(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION,
sub {
my($channel, $packet) = @_;
$channel->{ssh}->debug("Sending command: $cmd");
my $r_packet = $channel->request_start("exec", 0);
$r_packet->put_str($cmd);
$r_packet->send;
if ($stdin) {
$channel->send_data($stdin);
$channel->drain_outgoing;
$channel->{istate} = CHAN_INPUT_WAIT_DRAIN;
$channel->send_eof;
$channel->{istate} = CHAN_INPUT_CLOSED;
}
});