|
Packit |
6baad5 |
libasyncns 0.8
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Copyright 2005-2009 Lennart Poettering
|
|
Packit |
6baad5 |
de>
|
|
Packit |
6baad5 |
* [1]License
|
|
Packit |
6baad5 |
* [2]News
|
|
Packit |
6baad5 |
* [3]Overview
|
|
Packit |
6baad5 |
* [4]Current Status
|
|
Packit |
6baad5 |
* [5]Documentation
|
|
Packit |
6baad5 |
* [6]Requirements
|
|
Packit |
6baad5 |
* [7]Installation
|
|
Packit |
6baad5 |
* [8]Acknowledgements
|
|
Packit |
6baad5 |
* [9]Download
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
License
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
This program is free software; you can redistribute it and/or modify it
|
|
Packit |
6baad5 |
under the terms of the GNU Lesser General Public License as published
|
|
Packit |
6baad5 |
by the Free Software Foundation, either version 2.1 of the License, or
|
|
Packit |
6baad5 |
(at your option) any later version.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
This program is distributed in the hope that it will be useful, but
|
|
Packit |
6baad5 |
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
6baad5 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
|
Packit |
6baad5 |
General Public License for more details.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
News
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Thu 15 Oct 2009:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[10]Version 0.8 released; changes include: various smaller fixes.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Tue 28 Oct 2008:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[11]Version 0.7 released; changes include: rework thread shutdown
|
|
Packit |
6baad5 |
logic.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Fri 24 Oct 2008:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[12]Version 0.6 released; changes include: save and restore h_errno in
|
|
Packit |
6baad5 |
addition to errno; drop usage of pthread's cancelling since it is
|
|
Packit |
6baad5 |
problematic on some platforms.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sun 17 Aug 2008:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[13]Version 0.5 released; changes include: fix getaddrinfo()
|
|
Packit |
6baad5 |
serialization.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sun 27 Jul 2008:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[14]Version 0.4 released; changes include: rework error handling logic,
|
|
Packit |
6baad5 |
add asyncns_freeanswer(), a lot of fixes
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Wed 23 May 2007:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[15]Version 0.3 released; changes include: build fixes: properly detect
|
|
Packit |
6baad5 |
res_query() on Linux/AMD64, support older autoconf versions
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Fri 16 Feb 2007:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[16]Version 0.2 released; changes include: res_query() support; minor
|
|
Packit |
6baad5 |
bug fixes; doc updates
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sat 8 Jan 2005:
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
[17]Version 0.1 released
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Overview
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
libasyncns is a C library for Linux/Unix for executing name service
|
|
Packit |
6baad5 |
queries asynchronously. It is an asynchronous wrapper around
|
|
Packit |
6baad5 |
getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from
|
|
Packit |
6baad5 |
libc and libresolv.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
In contrast to GNU's asynchronous name resolving API getaddrinfo_a(),
|
|
Packit |
6baad5 |
libasyncns does not make use of UNIX signals for reporting completion
|
|
Packit |
6baad5 |
of name queries. Instead, the API exports a standard UNIX file
|
|
Packit |
6baad5 |
descriptor which may be integerated cleanly into custom main loops.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
In contrast to asynchronous DNS resolving libraries like [18]libdenise,
|
|
Packit |
6baad5 |
[19]skadns, [20]adns, libasyncns is just an asynchronous wrapper around
|
|
Packit |
6baad5 |
the libc's synchronous getaddrinfo() API, which has the advantage of
|
|
Packit |
6baad5 |
allowing name resolution using techniques like [21]Multicast DNS, LDAP
|
|
Packit |
6baad5 |
or NIS using standard libc NSS (Name Service Switch) modules.
|
|
Packit |
6baad5 |
libasyncns is compatible with IPv6 if the underlying libc is.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
libasyncns is very tiny, consisting of just one header and one source
|
|
Packit |
6baad5 |
file. It has no dependencies besides libc.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
By default libasyncns spawns a number of worker threads (LWPs) to
|
|
Packit |
6baad5 |
process name queries. Alternatively or when POSIX Threads are not
|
|
Packit |
6baad5 |
supported, libasyncns can fork() off worker processes instead.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Current Status
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Version 0.8 is quite stable and feature complete.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Damien Thébault has written a Python module [22]libasyncns-python that
|
|
Packit |
6baad5 |
wraps the libasyncns C API.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Documentation
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
You may browse the [23]Doxygen generated [24]programing documentation
|
|
Packit |
6baad5 |
the API. (Run make doxygen to generate this documentation from the
|
|
Packit |
6baad5 |
source tree)
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Requirements
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Currently, libasyncns is tested on Linux and Solaris
|
|
Packit |
6baad5 |
(sparc-sun-solaris2.8) only.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
libasyncns was developed and tested on Debian GNU/Linux "testing" from
|
|
Packit |
6baad5 |
January 2005, it should work on most other Linux distributions (and
|
|
Packit |
6baad5 |
maybe Unix versions) since it uses GNU autoconf and GNU libtool for
|
|
Packit |
6baad5 |
source code configuration and shared library management.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
libasyncns has no dependencies besides a libc that supports
|
|
Packit |
6baad5 |
getaddrinfo() and res_query().
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Installation
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
As this package is made with the GNU autotools you should run
|
|
Packit |
6baad5 |
./configure inside the distribution directory for configuring the
|
|
Packit |
6baad5 |
source tree. After that you should run make for compilation and make
|
|
Packit |
6baad5 |
install (as root) for installation of libasyncns.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Acknowledgements
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sjoerd Simons for the res_query() support.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Download
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
The newest release is always available from
|
|
Packit |
6baad5 |
[25]http://0pointer.de/lennart/projects/libasyncns/
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
The current release is [26]0.8
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Get libasyncns's development sources from the [27]GIT [28]repository
|
|
Packit |
6baad5 |
([29]gitweb):
|
|
Packit |
6baad5 |
git clone git://git.0pointer.de/libasyncns
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
You may find an up to date Debian package of libasyncns on the
|
|
Packit |
6baad5 |
[30]Debian package repository.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
If you want to be notified whenever I release a new version of this
|
|
Packit |
6baad5 |
software use the subscription feature of [31]Freshmeat.
|
|
Packit |
6baad5 |
__________________________________________________________________
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Lennart Poettering <mznflapaf (at) 0pointer (dot) de>, October 2009
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
References
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
1. README#license
|
|
Packit |
6baad5 |
2. README#news
|
|
Packit |
6baad5 |
3. README#overview
|
|
Packit |
6baad5 |
4. README#status
|
|
Packit |
6baad5 |
5. README#documentation
|
|
Packit |
6baad5 |
6. README#requirements
|
|
Packit |
6baad5 |
7. README#installation
|
|
Packit |
6baad5 |
8. README#acks
|
|
Packit |
6baad5 |
9. README#download
|
|
Packit |
6baad5 |
10. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.8.tar.gz
|
|
Packit |
6baad5 |
11. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.7.tar.gz
|
|
Packit |
6baad5 |
12. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.6.tar.gz
|
|
Packit |
6baad5 |
13. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.5.tar.gz
|
|
Packit |
6baad5 |
14. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.4.tar.gz
|
|
Packit |
6baad5 |
15. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.3.tar.gz
|
|
Packit |
6baad5 |
16. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.2.tar.gz
|
|
Packit |
6baad5 |
17. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.1.tar.gz
|
|
Packit |
6baad5 |
18. http://libdenise.sourceforge.net/
|
|
Packit |
6baad5 |
19. http://www.skarnet.org/software/skadns/
|
|
Packit |
6baad5 |
20. http://www.chiark.greenend.org.uk/~ian/adns/
|
|
Packit |
6baad5 |
21. http://0pointer.de/lennart/projects/nss-mdns/
|
|
Packit |
6baad5 |
22. https://launchpad.net/libasyncns-python
|
|
Packit |
6baad5 |
23. http://www.doxygen.org/
|
|
Packit |
6baad5 |
24. http://0pointer.de/lennart/projects/libasyncns/doxygen/
|
|
Packit |
6baad5 |
25. http://0pointer.de/lennart/projects/libasyncns/
|
|
Packit |
6baad5 |
26. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.8.tar.gz
|
|
Packit |
6baad5 |
27. http://git.or.cz/
|
|
Packit |
6baad5 |
28. git://git.0pointer.de/libasyncns
|
|
Packit |
6baad5 |
29. http://git.0pointer.de/?p=libasyncns.git
|
|
Packit |
6baad5 |
30. http://packages.debian.org/libasyncns0
|
|
Packit |
6baad5 |
31. http://freshmeat.net/projects/libasyncns/
|