Re: [EXIM] accept() errors instead of accepting when network…

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Malcolm Beattie
CC: exim-users
Subject: Re: [EXIM] accept() errors instead of accepting when network unreachable
On Wed, 18 Nov 1998, Malcolm Beattie wrote:

> Under Linux 2.0, accept() can pass network
> error information up to user level. Software which doesn't expect
> this can get a bit confused: simply logging the error messages and
> treating the errors as EAGAIN (which is what I presume exim does) is
> reasonable behaviour.


Here's the comment from Exim's code. I think the code does what it says.

      /* If select or accept has failed and this was not caused by an
      interruption, log the incident and try again. With asymmetric TCP/IP
      routing errors such as "No route to network" have been seen here. Also
      "connection reset by peer" has been seen. These cannot be classed as
      disastrous errors, but they could fill up a lot of log. The code in smail
      crashes the daemon after 10 successive failures of accept, on the grounds
      that some OS fail continuously. Exim originally followed suit, but this
      appears to have caused problems. Now it just keeps going, but instead of
      logging each error, it batches them up when they are continuous. */



-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.



--
*** Exim information can be found at http://www.exim.org/ ***