I am almost certainly not the right person to do this work, since I'm
insanely busy trying to get the beta of my game open, and I only learned
of the existence of libssh2 like 3 days ago (thank you guys for making
it!), and I've only actually called it via Net::SSH2, but from my
surface level understanding, it sure seems like Henrik Nordström's post
in this thread is the only sane way forward:
Basically, making libssh2 queue up writes (to a point) and then get
pumped by the app if in nonblocking mode, so that the library can send
any kind of housekeeping packets it wants under the hood without hosing
the app or exposing all of that state back out to the API. This would
give the library API some atomicity, it either accepts the write (and
queues it internally), or it rejects the write wholesale with EAGAIN, in
which case the app is welcome to resubmit it, throw it away, change the
buffer pointer, or whatever it wants.
Does anybody disagree that's the right way forward?
On 2013-02-19 14:59, Daniel Stenberg wrote:
> On Tue, 19 Feb 2013, Chris Hecker wrote:
>> It just seems like requiring the exact pointer on subsequent calls is
>> going to be brittle no matter what, and it's going to keep breaking in
>> a lot of different ways.
> I agree.
>> I guess, practically speaking, is there a patch to fix the known cases
>> of this bug, or a timeline for fixing it/them?
> I personally am not working on this (and will not be able to within the
> near future either) and I don't know of anyone else who has spoken up
> about it (or in fact any of the other bugs we have reported). Feel free
> to dive in and give it a go!
Received on 2013-02-20