int libssh2_session_block_directions(LIBSSH2_SESSION *session);
When any of libssh2 functions return LIBSSH2_ERROR_EAGAIN an application should wait for the socket to have data available for reading or writing. Depending on the return value of libssh2_session_block_directions(3) an application should wait for read, write or both.
LIBSSH2_SESSION_BLOCK_INBOUND: Inbound direction blocked.
LIBSSH2_SESSION_BLOCK_OUTBOUND: Outbound direction blocked.
Application should wait for data to be available for socket prior to calling a libssh2 function again. If LIBSSH2_SESSION_BLOCK_INBOUND is set select should contain the session socket in readfds set. Correspondingly in case of LIBSSH2_SESSION_BLOCK_INBOUND writefds set should contain the socket.