Re: multiple connect on a socket

From: Vasisht Tadigotla (vasisht@eden.rutgers.edu)
Date: Tue Aug 06 2002 - 23:37:09 EST


>
> > Shouldn't it throw an error when I
> > try to connect to it a second time ? Am I missing something here.
>
> Yes, it used to return success once upon connection is complete.
>
> When the connection is in progress, it returns EALREADY,
> after this it returns EISCONN, but success is indicated when it goes
> from unconnected to connected state. Maybe, this is wrong but it used
> to work in this way.

since O_NONBLOCK is set for the socket fd, the initial connect will fail
with an EINPROGRESS, and the connection request is established
asynchronously. If there is another connect during this period before the
connection is established, as you said it returns EALREADY. This is after
the connection is established and I read data from the socket. Since the
connection is already established, a further connect attempt should return
EISCONN. This is the behaviour on SunOS and IRIX.

On Linux if I attempt to connect to the same socket after the connection
has been established, connect() returns 0. I'm not sure if this is the
correct behaviour.

thanks,

vasisht

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Aug 07 2002 - 22:00:34 EST