safely handle failure to open hosts, services, resolv.conf files
authorRich Felker <dalias@aerifal.cx>
Mon, 26 Oct 2015 22:42:22 +0000 (18:42 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 26 Oct 2015 22:42:22 +0000 (18:42 -0400)
previously, transient failures like fd exhaustion or other
resource-related errors were treated the same as non-existence of
these files, leading to fallbacks or false-negative results. in
particular:

- failure to open hosts resulted in fallback to dns, possibly yielding
  EAI_NONAME for a hostname that should be defined locally, or an
  unwanted result from dns that the hosts file was intended to
  replace.

- failure to open services resulted in EAI_SERVICE.

- failure to open resolv.conf resulted in querying localhost rather
  than the configured nameservers.

now, only permanent errors trigger the fallback behaviors above; all
other errors are reportable to the caller as EAI_SYSTEM.


No differences found