> >> 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.
Received on 2009-08-04