[distcc] gethostbyname()

Dimitri Papadopoulos-Orfanos papadopo at www.NOSPAM.fr
Tue Oct 12 10:32:25 GMT 2004


Function gethostbyname() is a known POSIX flaw. It used not to be 
possible to perform non-blocking calls to the resolver.

Martin lists the following options:

0- just suffer; or rather tell people to fix their nameserver or turn
down the timeout in resolv.conf

Martin thinks this is the best option.

1- use resolv.h, which can take a timeout but might be nonportable

That's a bad idea, header resolv.h is part of BIND which covers only 
DNS. Hosts are not always listed in a DNS server. They may be listed in 
NIS or LDAP servers. NIS is sometimes used where I work for example.

2- use an asynchronous DNS library; should be easy but adds another
dependency and/or thing that must be bundled

Is there such a library? One that also covers NIS servers and such? On 
the other hand there are proposals for an asynchronous lookup framework:
Why not use getaddrinfo_a() on platforms where it's available? I'm 
pretty sure there are some autoconf macros that cover this function.

3- run lookups in a separate process, which can be killed off (a bit gross)

Note that mozilla uses lookups in a separate process, so that option may 
be gross but it can't be that bad.

Dimitri Papadopoulos

More information about the distcc mailing list