[tolj@wapme-systems.de: Re: Problem with accept?!!
Thomas Pfaff
tpfaff@gmx.net
Tue Jun 3 14:59:00 GMT 2003
Corinna Vinschen wrote:
> On Tue, Jun 03, 2003 at 03:35:08PM +0200, Thomas Pfaff wrote:
>
>>I have tried this one and it looks really good. The only thing i would
>>change is that i would check except_fds instead of write_fds.
>
>
> Yes, that makes sense to me.
>
> Thanks for your detailed feedback! I'm very happy with the result we
> have now. I've checked in the patch together with your change and
> put our both names in the ChangeLog entry. So people know they can
> blame both of us for this patch ;-)
>
Before someone will notice this and try to blame us one more patch.
If a connect is interrupted subsequent calls to connect should fail and
select must be used instead. With this patch EINPROGRESS (119) will be
returned but i think that according to
http://www.opengroup.org/onlinepubs/007904975/functions/connect.html
it should be EALREADY (120).
Thomas
--- net.cc.org 2003-06-03 15:24:06.000000000 +0200
+++ net.cc 2003-06-03 16:45:50.000000000 +0200
@@ -775,7 +775,7 @@ cygwin_connect (int fd, const struct soc
else
{
bool was_blocking = false;
- if (!fh->is_nonblocking ())
+ if (!fh->is_nonblocking () && !fh->is_connect_pending ())
{
int nonblocking = 1;
fh->ioctl (FIONBIO, &nonblocking);
@@ -817,6 +817,7 @@ cygwin_connect (int fd, const struct soc
{
WSASetLastError (WSAEINPROGRESS);
set_winsock_errno ();
+ fh->set_connect_state (CONNECT_PENDING);
}
}
int nonblocking = 0;
More information about the Cygwin-developers
mailing list