There was change in libssh2_channel_read_ex, in the check of rc < 0 if (channel->read_block) { /* in the second lap and onwards, do this */ rc = libssh2_packet_read(session); channel->read_packet = session->packets.head; }
/* We didn't read any data from the socket and * no packets are waiting to be read */ if ((rc < 0) && (! channel->read_packet)) { if (rc != PACKET_EAGAIN) { channel->read_state = libssh2_NB_state_idle; } /* no packets available */ return rc; } This is causing problems for me, the code appears to spin in some busy wait loop. This issue is that rc == LIBSSH2_ERROR_EAGAIN and session->packets.head is not NULL, so the error checking code is not entered. Reverting that line by removing the "&& (! channel->read_packet)", make the code work again. Code is from libssh2-0.19.0-20081020, compiled with mingw on win XP, and used in libcurl. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ libssh2-devel mailing list libssh2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libssh2-devel