Subject: Re: Command execution end

Re: Command execution end

From: Peter Stuge <peter_at_stuge.se>
Date: Tue, 4 Aug 2009 15:48:19 +0200

vti wrote:
> >> How can I know when a program is executed when I do:
> >>
> >> libssh2_channel_open_session()
> >> libssh2_channel_request_pty()
> >> libssh2_channel_shell()
> >> libssh2_channel_write(<my command>)
> >>
> >> ... wait while command is executing ...
> >>
> >> libssh2_channel_send_eof()
> >> libssh2_channel_wait_eof()
> >
> > You must already know exactly how the device will behave.
>
> I am afraid I don't understand what you mean.

Of course not. Sorry for the confusion!

> Would you be so kind to clear what do you mean by 'device'?

Never mind the device. My mind was on another mailing list. :)

> I am using nonblocking version. Scp functionality works perfect.
> But to make remote commands to work I have to do
> sleep(<some empirical number>).

RFC 4254 says to send SSH_MSG_CHANNEL_CLOSE. _channel_send_eof()
should be used only internally in libssh2. Maybe also marked that
way in the API somehow? Yes, might break ABI.

Please try _channel_close() and _channel_wait_closed() instead.

//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2009-08-04