===SSH Connection Protocol=== When either party wishes to terminate the channel, it sends SSH_MSG_CHANNEL_CLOSE. Upon receiving this message, a party MUST send back an SSH_MSG_CHANNEL_CLOSE unless it has already sent this message for the channel. The channel is considered closed for a party when it has both sent and received SSH_MSG_CHANNEL_CLOSE, and the party may then reuse the channel number. A party MAY send SSH_MSG_CHANNEL_CLOSE without having sent or received SSH_MSG_CHANNEL_EOF. ===SSH Connection Protocol===
The "terminate" word has the only meaning so i think it's a bug that libssh2 waits for next channel data after user has called libssh2_channel_close. The waiting period depends on how often the program uses stdout/stderr. If core developers agree with an issue i can spend my time for the further investigation of such behavior and making the patch. Implementation of signal's sending looks pretty easy. I can try to make it too if nobody is working on it already. 2011/10/13 Henrik Nordström <[email protected]>: > fre 2011-10-14 klockan 03:49 +0200 skrev Peter Stuge: >> Pavel Strashkin wrote: >> > Here we go. I read first block of data, then command "sleeps" for a >> > [interval] seconds, i do libssh2_channel_close or >> > libssh2_channel_free, and it hangs for [interval] seconds. I can't >> > close channel or session graceful. >> >> Of course not, when the remote program still has the channel open? > > Can it after a CLOSE? (not EOF) > > Regards > Henrik > > _______________________________________________ > libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel > _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
