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 17:22:23 -0800 (PST) From: "Peter A. Castro" To: cygwin AT cygwin DOT com cc: Peter Stephens 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; format=flowed X-IsSubscribed: yes On Tue, 29 Mar 2005, Brian Ford wrote: > 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. Yep, but I don't have time either, and this is a common enough problem for other platforms. :( >> 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. I agree. >> (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 ;-). I believe I've got a copy of that book. I'll have to dust it off and see if it has any pronouncements in this area :) > -- > Brian Ford -- Peter A. Castro or "Cats are just autistic Dogs" -- Dr. Tony Attwood -- 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/