This mailing list has been abandoned! Subscribe to and use the new list instead: http://cool.haxx.se/mailman/listinfo/libssh2-devel ----------------------------------------------------------------------
On Sun, 4 Sep 2011, Alexander Lamaison wrote: Note that you managed to post to the old list, so I'm now replying to both the old and the current one. > I've been having a problem where sftp_read return 0 (i.e. thinks its reached > the end of the file) even though it has only partly transferred it. This is > particularly noticeable when the 'file' is something like /dev/random that > renders data very slowly. Earlier versions used to block in this case and > wait for data. git bisect identifies this commit as the culprit: > http://trac.libssh2.org/changeset/90b4b4073f34919aa72deff61a5c9bc188c47c95/libssh2 Are you sure that really is the culprit? I mean, does it truly get back to working if you revert that change? I just don't see how that change is related to the problem you describe... > Daniel, can you run me through the logic for this change? For instance, > what happens when (buffer_size*4) is <= already? Are we supposed to modify > count here too? And, I'm feeling a bit dense right now: why is it buffer*4? Sure! First, buffer_size*4 is just picked more or less out of the air. The idea is that when reading SFTP from a remote server, we send away multiple read requests guessing that the client will read more than only this 'buffer_size' amount of memory. So we ask for maximum buffer_size*4 amount of data so that we can return them very fast in subsequent calls. (Feel free to experiment to set it *2 or *6 or whatever.) The particular change you're referring to was made because if you call sftp_read() in a sequence like: 1. sftp_read(VERY_BIG_BUFFER); 2. sftp_read(VERY_SMALL_BUFFER); ... before this change, the 'count' variable could get wrapped in the second call (as 'already' was then larger than buffer_size*4) and since count is unsigned, it would turn into an insanly high value and just be very very wrong. -- / daniel.haxx.se ------------------------------------------------------------------------------ Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free "Love Thy Logs" t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev _______________________________________________ libssh2-devel mailing list libssh2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libssh2-devel