On Fri, 31 Mar 2006, John Rowe wrote:

> Sorry about the confusion, clearly it wasn't getpwnam but was presumably
> either a hosts_ctl() or verify_check_host() problem.

hosts_ctl() refers to the use of tcpwrappers, which I think few people 
use. verify_check_host() refers to the use of the host_reject_connection 
option, which again I think few people use - because this can done more 
flexibly in an ACL. I presume you are, however, using one or both of 
those?  I still agree that avoiding the 554 when your disks die is 
desirable.

> Obviously this raises a potentially tricky question of whether this
> should return 5xx or 4xx but could we try the following: zero errno
> before the check and if the check fails test errno for a list of values
> that must mean "something is wrong" (EIO, EMFILE, ENFILE, ENOMEM, ENOSPC
> and maybe a few others). 

All sorts of things might modify errno while inside those functions and 
those they call. I don't think relying on checking at the outer level is 
a good idea. Checks on errno should happen right after the system call 
that might set the value. Otherwise something else might flatten it.

I'll take a deeper look at this some time, but not before 4.61.


-- 
Philip Hazel            University of Cambridge Computing Service
Get the Exim 4 book:    http://www.uit.co.uk/exim-book

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to