In article <local.mail.freebsd-current/[EMAIL PROTECTED]> you write:
>Some background: when a socket is connected in non-blocking mode and
>the connect does not immediately succeed (i.e. EINPROGRESS is returned),
>linux obviously will return the value getsockopt(...SO_ERROR...) on the 
>socket would give on FreeBSD (i.e. 0 if the connection attempt succeeded) 
>from the first connect() call on the socket after the connection has been
>established. Only the next call will returne EISCONN. 
>So, the linuxulator has been modified in the past to always return the 
>value getsockopt(...SO_ERROR...) gives.
>This does break applications that loop and wait for EISCONN, e.g.
>StarOffice.

Let me get this straight, just so I understand the behavior:

    1. socket is marked non-blocking.
    2. connect() is made, does not immediately succeed, returns EINPROGRESS

    3. connect() call is repeatedly made, EALREADY is returned.

    4. connection finally established, connect() returns EISCONN

Is this the correct/desired behavior?
--
Jonathan

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to