3 Copyright 2005-2009 Lennart Poettering <mznflapaf (at) 0pointer (dot)
17 This program is free software; you can redistribute it and/or modify it
18 under the terms of the GNU Lesser General Public License as published
19 by the Free Software Foundation, either version 2.1 of the License, or
20 (at your option) any later version.
22 This program is distributed in the hope that it will be useful, but
23 WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
25 General Public License for more details.
31 [10]Version 0.8 released; changes include: various smaller fixes.
35 [11]Version 0.7 released; changes include: rework thread shutdown
40 [12]Version 0.6 released; changes include: save and restore h_errno in
41 addition to errno; drop usage of pthread's cancelling since it is
42 problematic on some platforms.
46 [13]Version 0.5 released; changes include: fix getaddrinfo()
51 [14]Version 0.4 released; changes include: rework error handling logic,
52 add asyncns_freeanswer(), a lot of fixes
56 [15]Version 0.3 released; changes include: build fixes: properly detect
57 res_query() on Linux/AMD64, support older autoconf versions
61 [16]Version 0.2 released; changes include: res_query() support; minor
62 bug fixes; doc updates
66 [17]Version 0.1 released
70 libasyncns is a C library for Linux/Unix for executing name service
71 queries asynchronously. It is an asynchronous wrapper around
72 getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from
75 In contrast to GNU's asynchronous name resolving API getaddrinfo_a(),
76 libasyncns does not make use of UNIX signals for reporting completion
77 of name queries. Instead, the API exports a standard UNIX file
78 descriptor which may be integerated cleanly into custom main loops.
80 In contrast to asynchronous DNS resolving libraries like [18]libdenise,
81 [19]skadns, [20]adns, libasyncns is just an asynchronous wrapper around
82 the libc's synchronous getaddrinfo() API, which has the advantage of
83 allowing name resolution using techniques like [21]Multicast DNS, LDAP
84 or NIS using standard libc NSS (Name Service Switch) modules.
85 libasyncns is compatible with IPv6 if the underlying libc is.
87 libasyncns is very tiny, consisting of just one header and one source
88 file. It has no dependencies besides libc.
90 By default libasyncns spawns a number of worker threads (LWPs) to
91 process name queries. Alternatively or when POSIX Threads are not
92 supported, libasyncns can fork() off worker processes instead.
96 Version 0.8 is quite stable and feature complete.
98 Damien Thébault has written a Python module [22]libasyncns-python that
99 wraps the libasyncns C API.
103 You may browse the [23]Doxygen generated [24]programing documentation
104 the API. (Run make doxygen to generate this documentation from the
109 Currently, libasyncns is tested on Linux and Solaris
110 (sparc-sun-solaris2.8) only.
112 libasyncns was developed and tested on Debian GNU/Linux "testing" from
113 January 2005, it should work on most other Linux distributions (and
114 maybe Unix versions) since it uses GNU autoconf and GNU libtool for
115 source code configuration and shared library management.
117 libasyncns has no dependencies besides a libc that supports
118 getaddrinfo() and res_query().
122 As this package is made with the GNU autotools you should run
123 ./configure inside the distribution directory for configuring the
124 source tree. After that you should run make for compilation and make
125 install (as root) for installation of libasyncns.
129 Sjoerd Simons for the res_query() support.
133 The newest release is always available from
134 [25]http://0pointer.de/lennart/projects/libasyncns/
136 The current release is [26]0.8
138 Get libasyncns's development sources from the [27]GIT [28]repository
140 git clone git://git.0pointer.de/libasyncns
142 You may find an up to date Debian package of libasyncns on the
143 [30]Debian package repository.
145 If you want to be notified whenever I release a new version of this
146 software use the subscription feature of [31]Freshmeat.
147 __________________________________________________________________
150 Lennart Poettering <mznflapaf (at) 0pointer (dot) de>, October 2009
158 5. README#documentation
159 6. README#requirements
160 7. README#installation
163 10. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.8.tar.gz
164 11. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.7.tar.gz
165 12. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.6.tar.gz
166 13. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.5.tar.gz
167 14. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.4.tar.gz
168 15. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.3.tar.gz
169 16. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.2.tar.gz
170 17. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.1.tar.gz
171 18. http://libdenise.sourceforge.net/
172 19. http://www.skarnet.org/software/skadns/
173 20. http://www.chiark.greenend.org.uk/~ian/adns/
174 21. http://0pointer.de/lennart/projects/nss-mdns/
175 22. https://launchpad.net/libasyncns-python
176 23. http://www.doxygen.org/
177 24. http://0pointer.de/lennart/projects/libasyncns/doxygen/
178 25. http://0pointer.de/lennart/projects/libasyncns/
179 26. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.8.tar.gz
180 27. http://git.or.cz/
181 28. git://git.0pointer.de/libasyncns
182 29. http://git.0pointer.de/?p=libasyncns.git
183 30. http://packages.debian.org/libasyncns0
184 31. http://freshmeat.net/projects/libasyncns/