"Initial commit to Gerrit"
[profile/ivi/libasyncns.git] / README
1                                  libasyncns 0.7
2
3    Copyright 2005-2008 Lennart Poettering <mznflapaf (at) 0pointer (dot)
4    de>
5      * [1]License
6      * [2]News
7      * [3]Overview
8      * [4]Current Status
9      * [5]Documentation
10      * [6]Requirements
11      * [7]Installation
12      * [8]Acknowledgements
13      * [9]Download
14
15 License
16
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.
21
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.
26
27 News
28
29    Tue 28 Oct 2008:
30
31    [10]Version 0.7 released; changes include: rework thread shutdown
32    logic.
33
34    Fri 24 Oct 2008:
35
36    [11]Version 0.6 released; changes include: save and restore h_errno in
37    addition to errno; drop usage of pthread's cancelling since it is
38    problematic on some platforms.
39
40    Sun 17 Aug 2008:
41
42    [12]Version 0.5 released; changes include: fix getaddrinfo()
43    serialization.
44
45    Sun 27 Jul 2008:
46
47    [13]Version 0.4 released; changes include: rework error handling logic,
48    add asyncns_freeanswer(), a lot of fixes
49
50    Wed 23 May 2007:
51
52    [14]Version 0.3 released; changes include: build fixes: properly detect
53    res_query() on Linux/AMD64, support older autoconf versions
54
55    Fri 16 Feb 2007:
56
57    [15]Version 0.2 released; changes include: res_query() support; minor
58    bug fixes; doc updates
59
60    Sat 8 Jan 2005:
61
62    [16]Version 0.1 released
63
64 Overview
65
66    libasyncns is a C library for Linux/Unix for executing name service
67    queries asynchronously. It is an asynchronous wrapper around
68    getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from
69    libc and libresolv.
70
71    In contrast to GNU's asynchronous name resolving API getaddrinfo_a(),
72    libasyncns does not make use of UNIX signals for reporting completion
73    of name queries. Instead, the API exports a standard UNIX file
74    descriptor which may be integerated cleanly into custom main loops.
75
76    In contrast to asynchronous DNS resolving libraries like [17]libdenise,
77    [18]skadns, [19]adns, libasyncns is just an asynchronous wrapper around
78    the libc's synchronous getaddrinfo() API, which has the advantage of
79    allowing name resolution using techniques like [20]Multicast DNS, LDAP
80    or NIS using standard libc NSS (Name Service Switch) modules.
81    libasyncns is compatible with IPv6 if the underlying libc is.
82
83    libasyncns is very tiny, consisting of just one header and one source
84    file. It has no dependencies besides libc.
85
86    By default libasyncns spawns a number of worker threads (LWPs) to
87    process name queries. Alternatively or when POSIX Threads are not
88    supported, libasyncns can fork() off worker processes instead.
89
90 Current Status
91
92    Version 0.7 is quite stable and feature complete.
93
94    Damien Thébault has written a Python module [21]libasyncns-python that
95    wraps the libasyncns C API.
96
97 Documentation
98
99    You may browse the [22]Doxygen generated [23]programing documentation
100    the API. (Run make doxygen to generate this documentation from the
101    source tree)
102
103 Requirements
104
105    Currently, libasyncns is tested on Linux and Solaris
106    (sparc-sun-solaris2.8) only.
107
108    libasyncns was developed and tested on Debian GNU/Linux "testing" from
109    January 2005, it should work on most other Linux distributions (and
110    maybe Unix versions) since it uses GNU autoconf and GNU libtool for
111    source code configuration and shared library management.
112
113    libasyncns has no dependencies besides a libc that supports
114    getaddrinfo() and res_query().
115
116 Installation
117
118    As this package is made with the GNU autotools you should run
119    ./configure inside the distribution directory for configuring the
120    source tree. After that you should run make for compilation and make
121    install (as root) for installation of libasyncns.
122
123 Acknowledgements
124
125    Sjoerd Simons for the res_query() support.
126
127 Download
128
129    The newest release is always available from
130    [24]http://0pointer.de/lennart/projects/libasyncns/
131
132    The current release is [25]0.7
133
134    Get libasyncns's development sources from the [26]GIT [27]repository
135    ([28]gitweb):
136 git clone git://git.0pointer.de/libasyncns
137
138    You may find an up to date Debian package of libasyncns on the
139    [29]Debian package repository.
140
141    If you want to be notified whenever I release a new version of this
142    software use the subscription feature of [30]Freshmeat.
143      __________________________________________________________________
144
145
146     Lennart Poettering <mznflapaf (at) 0pointer (dot) de>, October 2008
147
148 References
149
150    1. README#license
151    2. README#news
152    3. README#overview
153    4. README#status
154    5. README#documentation
155    6. README#requirements
156    7. README#installation
157    8. README#acks
158    9. README#download
159   10. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.7.tar.gz
160   11. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.6.tar.gz
161   12. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.5.tar.gz
162   13. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.4.tar.gz
163   14. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.3.tar.gz
164   15. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.2.tar.gz
165   16. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.1.tar.gz
166   17. http://libdenise.sourceforge.net/
167   18. http://www.skarnet.org/software/skadns/
168   19. http://www.chiark.greenend.org.uk/~ian/adns/
169   20. http://0pointer.de/lennart/projects/nss-mdns/
170   21. https://launchpad.net/libasyncns-python
171   22. http://www.doxygen.org/
172   23. http://0pointer.de/lennart/projects/libasyncns/doxygen/
173   24. http://0pointer.de/lennart/projects/libasyncns/
174   25. http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.7.tar.gz
175   26. http://git.or.cz/
176   27. git://git.0pointer.de/libasyncns
177   28. http://git.0pointer.de/?p=libasyncns.git
178   29. http://packages.debian.org/libasyncns0
179   30. http://freshmeat.net/projects/libasyncns/