On Tue, 13 Sep 2011, liuzl wrote:
>> sftp_read() {
>>> 1,window_adjust;
>>> 2,make READ packet;
>>> 3,send READ packet;
>>> 4,receive ACK packet;
>
> I mean if we are blocking in step 3 in the first call of sftp_read() , and
> we received many data in step 4, so we must expand receive window in the
> next call. but there is a half-left user-data doesn't sent, so function will
> return BAD_USE in step 1 in the next call. and always return in the later
> call.
Quite right. I'll follow up with a fix that keeps the state better to avoid
this. Although it seems to be a rather rare case in my tests...
Thanks for your accurate observations!
This is however what I meant when I said there are still remaining flaws to
fix. I still believe this approach is a way forward.
-- / daniel.haxx.se _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-develReceived on 2011-09-13