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/