Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Feb 2001 20:19:29 -0600 (CST)
From:      Jonathan Lemon <jlemon@flugsvamp.com>
To:        tmoestl@gmx.net, current@freebsd.org
Subject:   Re: [PATCH] for linux_connect (ugly)
Message-ID:  <200102280219.f1S2JTl80974@prism.flugsvamp.com>
In-Reply-To: <local.mail.freebsd-current/20010228015515.A6763@crow.dom2ip.de>
References:  <local.mail.freebsd-current/3A6C7C25.A6101656@cup.hp.com> <local.mail.freebsd-current/Pine.BSF.4.21.0102272224580.12716-100000@levais.imp.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <local.mail.freebsd-current/20010228015515.A6763@crow.dom2ip.de> 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200102280219.f1S2JTl80974>