On Fri, 12 Nov 2010, Mark Riordan wrote:
> I did that, and ran it, and put the results here:
Okej, the executive summary is this table:
Transferred 0.114 MB
Final tot_libssh2_send=15707099
tot_libssh2_transport_send=1558708
tot_send_existing=14148364
tot_libssh2_keepalive_send=0
tot_channel_write=1460245
put took 2.281 seconds = 0.050 MB/sec
These are really useful details and they show that things are terribly wrong!
I'm first focusing on "tot_libssh2_send=15707099" as it shows the problem is
present in the lowest possible layer within libssh2.
For this to be able to happen, I'm thinking there's something wrong with the
EAGAIN detection for win32 and I've just now remade how it is handled:
previously we would convert from the win32 error to the errno value and store
that in errno to allow the parent function to read it.
Starting now, we only use the _libssh2_recv and _libssh2_send functions and
they simply return the negative errno value on errors so that we don't ever
have to store anything in errno for win32 but only return the correct value.
Commit ca2e81eb1f1bcb3 was just pushed with this change.
-- / daniel.haxx.se _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-develReceived on 2010-11-12