Subject: blocking redone committed

blocking redone committed

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Thu, 26 Mar 2009 19:19:15 +0100 (CET)

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_at_lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libssh2-devel
Received on 2009-03-26