delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2002/07/04/10:41:37

Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT cygwin DOT com>
List-Help: <mailto:cygwin-developers-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-developers-owner AT cygwin DOT com
Delivered-To: mailing list cygwin-developers AT cygwin DOT com
X-Authentication-Warning: atacama.four-d.de: mail set sender to <tpfaff AT gmx DOT net> using -f
Date: Thu, 4 Jul 2002 16:41:10 +0200 (=?ISO-8859-1?Q?Westeurop=E4ische_Sommerzeit?=)
From: Thomas Pfaff <tpfaff AT gmx DOT net>
To: cygwin-developers AT cygwin DOT com
Subject: Re: Interruptable connect
In-Reply-To: <20020704161116.U21857@cygbert.vinschen.de>
Message-ID: <Pine.WNT.4.44.0207041622360.264-100000@algeria.intern.net>
X-X-Sender: pfaff AT antarctica DOT intern DOT net
MIME-Version: 1.0


On Thu, 4 Jul 2002, Corinna Vinschen wrote:

> On Thu, Jul 04, 2002 at 02:54:44PM +0200, Thomas Pfaff wrote:
> > > Sure, but how will this help ? You can not look ahead if the connect will
> > > be reentered or not. If the program is well written it will or close the
> > > socket afterwards, but should i rely on this ?
> > >
> >
> > To be more precise:
> > I have no problems with unclosed sockets but with a connected socket
> > that shouldn't be connected.
>
> I see.  The question is if we're able to get around that Winsock'ism.
>
> Perhaps Winsock2 helps a bit.
>
> This is just brainstorming, I have no idea if that works:
>
> When connect is called, create a duplicate of the socket first,
> before actually connecting, using the WSADuplicateSocket call.
> This should give you a structure describing the socket in exactly
> the state before the ::connect call.  Now for the cases:
>
> - Normal connect, success, erase the duplicate.
> - Normal connect, failure, ditto.
> - Interrupt, close original socket and recreate it from the duplicate
>   using WSASocket.
>
> Would that work???
>

Sounds good, but i am not 100 % sure if the duplicated socket is created
in exactly the same state than the original one before WSAEventSelect.
The remarks in WSADuplicateSocket are not clear, especially whether it is
possible to close the original socket first and then create the duplicate.
I will make some tests.

Thomas

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019