This is the mail archive of the
mauve-discuss@sourceware.org
mailing list for the Mauve project.
Re: New SocketChannel test that requires testing
Jeroen Frijters wrote:
> Casey Marshall wrote:
>> Maybe we are wrong for returning true for `isConnected' that
>> early after trying to establish the connection; the test we're using
>> is whether or not the socket has a remote address or not, which may
>> not be the criteria we're interested in.
>
> Yes, I believe that's incorrect. I think you can only transition into
> the connected state by calling finishConnect (if connect was called in
> non-blocking mode).
>
That's not necessarily true; on some systems, even a non-blocking call
to connect() can succeed immediately, if you are connecting to the local
machine. It doesn't sound right that you get this condition even when
the server process hasn't pulled the connection off the queue, but that
may be how it works.
I wonder, now, if this is an artifact of our (new) RI: we call a
nonblocking connect() every time, then select() on the server's FD to
handle the blocking case, with timeout. This may be doing the wrong
thing with nonblocking sockets.
Thanks.