Internally libssh2 uses PACKET_EAGAIN(-2) to signal would block.   
Externally:

Functions that return a structure return NULL and set error to  
LIBSSH2_ERROR_EAGAIN(-37)

Functions that return "int" return either LIBSSH2CHANNEL_EAGAIN(-2)  
or LIBSSH2SFTP_EAGAIN(-2), EXCEPT for
libssh2_session_startup() and libssh2_session_disconnect_ex() which  
return LIBSSH2_ERROR_EAGAIN(-37).

libssh2_session_disconnect_ex()'s return of LIBSSH2_ERROR_EAGAIN(-37)  
is incorrect, it should return -2.

libssh2_session_startup() returns other LIBSSH2_ERROR_ values so it  
should return LIBSSH2_ERROR_EAGAIN.

Some of the public functions are called by other public or private  
functions so they have to use the same value.

LIBSSH2CHANNEL_EAGAIN and LIBSSH2SFTP_EAGAIN were defined as part of  
the conversion to non-blocking as an initial way to tell functionality.

To simplify the users error interface I am suggesting that  
PACKET_EAGAIN, LIBSSH2CHANNEL_EAGAIN and LIBSSH2SFTP_EAGAIN all be  
defined to be LIBSSH2_ERROR_EAGAIN.

Comments

Jim
--

/"\   ASCII Ribbon Campaign  .
\ / - NO HTML/RTF in e-mail  .
  X  - NO Word docs in e-mail .
/ \ -----------------------------------------------------------------
[EMAIL PROTECTED]      http://www.FreeBSD.org     The Power to Serve
[EMAIL PROTECTED]  http://www.TheHousleys.net
---------------------------------------------------------------------
In theory there is no difference between theory and practice.
In practice there is no similarity.
       -- From the "I wish I'd said that" archives.



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
libssh2-devel mailing list
libssh2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libssh2-devel

Reply via email to