24 lines
1.2 KiB
Text
24 lines
1.2 KiB
Text
|
libasyncns is a C library for Linux/Unix for executing name service
|
||
|
queries asynchronously. It is an asynchronous wrapper around
|
||
|
getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from
|
||
|
libc and libresolv.
|
||
|
|
||
|
In contrast to GNU's asynchronous name resolving API getaddrinfo_a(),
|
||
|
libasyncns does not make use of UNIX signals for reporting completion
|
||
|
of name queries. Instead, the API exports a standard UNIX file
|
||
|
descriptor which may be integerated cleanly into custom main loops.
|
||
|
|
||
|
In contrast to asynchronous DNS resolving libraries like libdenise,
|
||
|
skadns, adns, libasyncns is just an asynchronous wrapper around
|
||
|
the libc's synchronous getaddrinfo() API, which has the advantage
|
||
|
of allowing name resolution using techniques like Multicast DNS,
|
||
|
LDAP or NIS using standard libc NSS (Name Service Switch) modules.
|
||
|
libasyncns is compatible with IPv6 if the underlying libc is.
|
||
|
|
||
|
libasyncns is very tiny, consisting of just one header and one
|
||
|
source file. It has no dependencies besides libc.
|
||
|
|
||
|
By default libasyncns spawns a number of worker threads (LWPs) to
|
||
|
process name queries. Alternatively or when POSIX Threads are not
|
||
|
supported, libasyncns can fork() off worker processes instead.
|