Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com Date: Tue, 25 Feb 2003 15:18:55 +0100 From: Corinna Vinschen To: cygwin-developers AT cygwin DOT com Subject: Re: Interruptable connect Message-ID: <20030225141855.GK8853@cygbert.vinschen.de> Reply-To: cygwin-developers AT cygwin DOT com Mail-Followup-To: cygwin-developers AT cygwin DOT com References: <20030225121251 DOT GF8853 AT cygbert DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i On Tue, Feb 25, 2003 at 02:53:41PM +0100, Thomas Pfaff wrote: > SO_ERROR seems to be difficult because setsockopt does not allow to set > it (and i don't know which error should be set after an interrupted > connect. Maybe you could check this on Linux). I don't think SO_ERROR hurts badly. We could memorize the error code WSAEINTR (which should be the correct error code on an interrupted call) up to the next application call to Cygwin's getsockopt(SO_ERROR). In Cygwin's getsockopt() we can call the WinSock getsockopt and if that returns an error value of 0, we return the old error code instead and set it to 0. Otherwise we just return the new error code. From then on, back to normal. > Following options seems to be unsupported by Winsock (and i suppose that > they are unsupported by cygwin too). > > SO_USELOOPBACK > SO_SNDLOWAT > SO_RCVLOWAT > SO_SNDTIMEO > SO_RCVTIMEO Yep, unsupported. Corinna > And of course if the socket is already bound the socket address must be > restored. This should be possible by using SO_REUSEADDR after the original > socket has been closed. Yep. We're getting nearer... Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Developer mailto:cygwin AT cygwin DOT com Red Hat, Inc.