This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: recv and errno during a connection reset/closed by peer
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/