libdnsres - a non-blocking DNS resolver library
Libdnsres provides a non-blocking thread-safe API for resolving DNS
names. It requires that your main application is built on top of libevent. Libdnsres' API essentially mirrors
the traditional gethostbyname and getaddrinfo interfaces.
All return values have been replaced by callbacks instead.
The code borrows heavily from the BSD resolver library. In fact, it
is an extremely ugly hack to make the BSD resolver library
non-blocking and thread-safe without changing the API too much.
Although libdnsres has not been tested heavily, it should compile on
BSD systems and Linux. The library comes with a simple test program
that can be use to verify if it works correctly. Good luck!