> > My code requests a block of 4096. It multiplies that by 4 (16,384),
> > then it starts doing packets requesting 2000 characters. After it's
> > done 8 of these, the 'count' goes down to 384, which is what
> > chunk->len is set to above. rc32 is set to 2000 so it fails.
> I assume you're trying with the latest libssh2 version?
Yes.
> > I've found if I have the requested buffer at exactly a multiple of
> > 2000, it seems to work, although I'm somewhat nervous about it working
for all cases.
> >
> > Is this expected? It is not documented.
>
> It is not expected. The check above is there to detect the error situation
when a
> server returns a bigger chunk than what we asked for.
>
> libssh2 splits up data sizes into smaller chunks and ask for them one by
one, so
> chunk->len is supposed to be the size of the chunk it asked for.
I spent some time debugging it and at this point it does look like a
server-side issue.
I also tested the x86 version, thinking that there was a chance that the x64
compile may have introduced a bug but it behaves the same.
By specifying a multiple of 2000 byte buffer it never asks (so far, at
least) for a partial buffer and gets around the problem.
Thanks,
Bob
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2014-03-13