Subject: Re: [libssh2] Non-blocking vs. default mode

Re: [libssh2] Non-blocking vs. default mode

From: James Housley <jim_at_thehousleys.net>
Date: Sun, 22 Apr 2007 10:56:20 -0400

On Apr 22, 2007, at 10:11 AM, Daniel Stenberg wrote:

> On Sun, 22 Apr 2007, James Housley wrote:
>
>> The new code in sftp.c gets the current blocking state of libssh2
>> to restore it afterwards, then sets the state to what is desired.
>> However, libssh2_sftp_read() will set the blocking state to 1, do
>> it's business and then restore the state (probably to 0). Since
>> the blocking/non-blocking state is setup before it is passed to
>> libssh2, libssh2 doesn't know what the current state is.
>>
>> We can require all new programs to explicitly call
>> libssh2_channel_set_blocking() to ensure libssh2 knows the proper
>> state of the socket.
>
> I propose that we instead remove libssh2_channel_set_blocking()
> from the API, and always just provide the blocking and the non-
> blocking ones. Then we know what mode to work on based on what
> functions that are called.
>
> libssh2_channel_set_blocking() wasn't working before and it doesn't
> make much sense to me now either.
>
> Or is there any benefit with still providing
> libssh2_channel_set_blocking() ?

But in blocking mode, the current state of channel->blocking will be
non-blocking, as currently written. So when when existing programs
are used after calling libssh2_sftp_read() the system will be set to
non-blocking.

That and there is a long way/time to go until all the functions exist
in both modes. In the mean time, if the current blocking state of
the socket were detected and channel->blocking was set by then,
existing programs should continue to work with the new versions of
the library.

Jim

--
/"\   ASCII Ribbon Campaign  .
\ / - NO HTML/RTF in e-mail  .
  X  - NO Word docs in e-mail .
/ \ -----------------------------------------------------------------
jeh@FreeBSD.org      http://www.FreeBSD.org     The Power to Serve
jim@TheHousleys.Net  http://www.TheHousleys.net
---------------------------------------------------------------------
"Eagles may soar, but weasels don't get sucked into jet engines"
     -- Anon
-------------------------------------------------------------------------
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_at_lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libssh2-devel
Received on 2007-04-22