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>
