Hey again friends, My rather biggish overhaul of how to deal with the blocking API has now been committed. Everyone please try out CVS HEAD and see how it runs for you!
Some words on my changes: * The blocking mode is now only set for on API behavior. The actual socket will unconditionally be set non-blocking and the blocking will be dealt with a loop and select(). As a result of this, we can introduce time-out options for the blocking API whenever we feel like it. Also, we should from now on stop calling this external-API functions internally so that we always let the blocking stuff happen on the topmost layer. At the bottom of this mail I'll list the 44 functions in the API that can block. * I renamed the functions in src/transport.c to be _libssh2_transport_ prefixed to better follow the general naming tradition internally. * I've started to introduce separate headers for protos etc for local functions so that channel.c-provided functions (will) have their protos in channel.h instead of cramming everyone into libssh2_priv.h * libssh2_channel_receive_window_adjust2 was added and libssh2_channel_receive_window_adjust is now deprecated * I also did some comment updates etc These are all the blocking (or non-blocking) functions (possibly we should keep this list somewhere): libssh2_channel_close libssh2_channel_direct_tcpip_ex libssh2_channel_flush_ex libssh2_channel_forward_accept libssh2_channel_forward_cancel libssh2_channel_forward_listen_ex libssh2_channel_free libssh2_channel_handle_extended_data2 libssh2_channel_handle_extended_data libssh2_channel_open_ex libssh2_channel_process_startup libssh2_channel_read_ex libssh2_channel_receive_window_adjust libssh2_channel_receive_window_adjust2 libssh2_channel_request_pty_ex libssh2_channel_request_pty_size_ex libssh2_channel_send_eof libssh2_channel_setenv_ex libssh2_channel_wait_closed libssh2_channel_wait_eof libssh2_channel_write_ex libssh2_channel_x11_req_ex libssh2_session_disconnect_ex libssh2_session_free libssh2_session_startup libssh2_sftp_close_handle libssh2_sftp_fstat_ex libssh2_sftp_init libssh2_sftp_mkdir_ex libssh2_sftp_open_ex libssh2_sftp_read libssh2_sftp_readdir_ex libssh2_sftp_rename_ex libssh2_sftp_rmdir_ex libssh2_sftp_shutdown libssh2_sftp_stat_ex libssh2_sftp_symlink_ex libssh2_sftp_unlink_ex libssh2_sftp_write libssh2_userauth_password_ex libssh2_userauth_hostbased_fromfile_ex libssh2_userauth_list libssh2_userauth_publickey_fromfile_ex libssh2_userauth_keyboard_interactive_ex -- / daniel.haxx.se ------------------------------------------------------------------------------ _______________________________________________ libssh2-devel mailing list libssh2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libssh2-devel