Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Tue, 29 Mar 2005 10:50:31 -0600 From: Brian Ford Reply-To: cygwin AT cygwin DOT com To: Peter Stephens cc: "'Peter A. Castro'" , cygwin AT cygwin DOT com Subject: RE: recv and errno during a connection reset/closed by peer In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-OriginalArrivalTime: 29 Mar 2005 16:50:34.0019 (UTC) FILETIME=[6CC3CF30:01C5347F] On Mon, 28 Mar 2005, Peter Stephens wrote: > FYI - I tried setting the SO_LINGER and the SO_RCVTIMEO on Linux and on > Cygwin (see code below). It makes sense to me that if the timeout has been > exceeded then the recv(..., MSG_PEEK) should do something. On Cygwin it > doesn't do anything. I don't have time to check, but I imagine this is just a http://cygwin.com/acronyms/#PTC. > On Linux it DOES time out, but it returns -1 and errno=EAGAIN. This is an > interesting choice for errno Yes, it is the correct one. > (perhaps ECONNABORTED, ESHUTDOWN, ECOMM, definately not. Just because a recv timed out doesn't mean the connection is closed. > ETIME, ETIMEDOUT, Maybe. > EHOSTUNREACH, or ENOLINK would have been better choices), No as above. > The spec is kinda vague about the response to a MSG_PEEK when the connection > is lost, but I think that you could write a book on this subject with all > the possible combinations. Yup. It's called "Unix Network Programming" by W. Richard Stevens ;-). -- Brian Ford Senior Realtime Software Engineer VITAL - Visual Simulation Systems FlightSafety International the best safety device in any aircraft is a well-trained pilot... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/