|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<head>
|
|
Packit |
6baad5 |
<title>libasyncns 0.8</title>
|
|
Packit |
6baad5 |
<link rel="stylesheet" type="text/css" href="style.css" />
|
|
Packit |
6baad5 |
</head>
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<body>
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Copyright 2005-2009 Lennart Poettering <mznflapaf (at) 0pointer (dot) de>
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
License
|
|
Packit |
6baad5 |
News
|
|
Packit |
6baad5 |
Overview
|
|
Packit |
6baad5 |
Current Status
|
|
Packit |
6baad5 |
Documentation
|
|
Packit |
6baad5 |
Requirements
|
|
Packit |
6baad5 |
Installation
|
|
Packit |
6baad5 |
Acknowledgements
|
|
Packit |
6baad5 |
Download
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
This program is free software; you can redistribute it and/or
|
|
Packit |
6baad5 |
modify it under the terms of the GNU Lesser General Public License as
|
|
Packit |
6baad5 |
published by the Free Software Foundation, either version 2.1 of the
|
|
Packit |
6baad5 |
License, or (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
|
|
Packit |
6baad5 |
Lesser General Public License for more details.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Thu 15 Oct
|
|
Packit |
6baad5 |
2009: Version
|
|
Packit |
6baad5 |
0.8 released; changes include: various smaller fixes.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Tue 28 Oct
|
|
Packit |
6baad5 |
2008: Version
|
|
Packit |
6baad5 |
0.7 released; changes include: rework thread shutdown logic.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Fri 24 Oct
|
|
Packit |
6baad5 |
2008: Version
|
|
Packit |
6baad5 |
0.6 released; changes include: save and restore <tt>h_errno</tt>
|
|
Packit |
6baad5 |
in addition to <tt>errno</tt>; drop usage of pthread's cancelling
|
|
Packit |
6baad5 |
since it is problematic on some platforms.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sun 17 Aug
|
|
Packit |
6baad5 |
2008: Version
|
|
Packit |
6baad5 |
0.5 released; changes include: fix getaddrinfo() serialization.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sun 27 Jul
|
|
Packit |
6baad5 |
2008: Version
|
|
Packit |
6baad5 |
0.4 released; changes include: rework error handling logic,
|
|
Packit |
6baad5 |
add <tt>asyncns_freeanswer()</tt>, a lot of fixes
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Wed 23 May 2007:
|
|
Packit |
6baad5 |
href="http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.3.tar.gz">Version 0.3 released;
|
|
Packit |
6baad5 |
changes include: build fixes: properly detect <tt>res_query()</tt> on
|
|
Packit |
6baad5 |
Linux/AMD64, support older autoconf versions
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Fri 16 Feb 2007:
|
|
Packit |
6baad5 |
href="http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.2.tar.gz">Version 0.2 released;
|
|
Packit |
6baad5 |
changes include: <tt>res_query()</tt> support; minor bug fixes; doc updates
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sat 8 Jan 2005:
|
|
Packit |
6baad5 |
href="http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.1.tar.gz">Version 0.1 released
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<tt>libasyncns</tt> is a C library for Linux/Unix for executing name
|
|
Packit |
6baad5 |
service queries asynchronously. It is an asynchronous wrapper around
|
|
Packit |
6baad5 |
<tt>getaddrinfo(3)</tt>, <tt>getnameinfo(3)</tt>, <tt>res_query(3)</tt> and
|
|
Packit |
6baad5 |
<tt>res_search(3)</tt> from <tt>libc</tt> and <tt>libresolv</tt>.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
In contrast to GNU's asynchronous name resolving API
|
|
Packit |
6baad5 |
<tt>getaddrinfo_a()</tt>, <tt>libasyncns</tt> does not make use of
|
|
Packit |
6baad5 |
UNIX signals for reporting completion of name queries. Instead, the
|
|
Packit |
6baad5 |
API exports a standard UNIX file descriptor which may be integerated
|
|
Packit |
6baad5 |
cleanly into custom main loops.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
In contrast to asynchronous DNS resolving libraries like <tt>
|
|
Packit |
6baad5 |
href="http://libdenise.sourceforge.net/">libdenise</tt>, <tt>
|
|
Packit |
6baad5 |
href="http://www.skarnet.org/software/skadns/">skadns</tt>, <tt>
|
|
Packit |
6baad5 |
href="http://www.chiark.greenend.org.uk/~ian/adns/">adns</tt>,
|
|
Packit |
6baad5 |
<tt>libasyncns</tt> is just an asynchronous wrapper around the libc's
|
|
Packit |
6baad5 |
synchronous <tt>getaddrinfo()</tt> API, which has the advantage of
|
|
Packit |
6baad5 |
allowing name resolution using techniques like
|
|
Packit |
6baad5 |
href="http://0pointer.de/lennart/projects/nss-mdns/">Multicast
|
|
Packit |
6baad5 |
DNS, LDAP or NIS using standard <tt>libc</tt> NSS (Name Service
|
|
Packit |
6baad5 |
Switch) modules. <tt>libasyncns</tt> is compatible with IPv6 if the
|
|
Packit |
6baad5 |
underlying <tt>libc</tt> is.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<tt>libasyncns</tt> is very tiny, consisting of just one header and
|
|
Packit |
6baad5 |
one source file. It has no dependencies besides <tt>libc</tt>.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
By default <tt>libasyncns</tt> spawns a number of worker threads
|
|
Packit |
6baad5 |
(LWPs) to process name queries. Alternatively or when POSIX Threads
|
|
Packit |
6baad5 |
are not supported, <tt>libasyncns</tt> can <tt>fork()</tt> off worker
|
|
Packit |
6baad5 |
processes instead.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
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 libasyncns-python that wraps the libasyncns C API.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
You may browse the Doxygen
|
|
Packit |
6baad5 |
generated
|
|
Packit |
6baad5 |
href="http://0pointer.de/lennart/projects/libasyncns/doxygen/">programing
|
|
Packit |
6baad5 |
documentation the API. (Run <tt>make doxygen</tt> to generate this
|
|
Packit |
6baad5 |
documentation from the source tree)
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Currently, <tt>libasyncns</tt> is tested on Linux and Solaris (<tt>sparc-sun-solaris2.8</tt>) only.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<tt>libasyncns</tt> was developed and tested on Debian GNU/Linux
|
|
Packit |
6baad5 |
"testing" from January 2005, it should work on most other Linux
|
|
Packit |
6baad5 |
distributions (and maybe Unix versions) since it uses GNU autoconf and
|
|
Packit |
6baad5 |
GNU libtool for source code configuration and shared library
|
|
Packit |
6baad5 |
management.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<tt>libasyncns</tt> has no dependencies besides a <tt>libc</tt> that supports <tt>getaddrinfo()</tt> and <tt>res_query()</tt>.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
As this package is made with the GNU autotools you should run
|
|
Packit |
6baad5 |
<tt>./configure</tt> inside the distribution directory for configuring
|
|
Packit |
6baad5 |
the source tree. After that you should run <tt>make</tt> for
|
|
Packit |
6baad5 |
compilation and <tt>make install</tt> (as root) for installation of
|
|
Packit |
6baad5 |
<tt>libasyncns</tt>.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Sjoerd Simons for the <tt>res_query()</tt> support.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
The newest release is always available from http://0pointer.de/lennart/projects/libasyncns/
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
The current release is 0.8
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
Get <tt>libasyncns</tt>'s development sources from the GIT repository (gitweb):
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
git clone git://git.0pointer.de/libasyncns
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
You may find an up to date Debian package of <tt>libasyncns</tt> on the Debian package repository.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
If you want to be notified whenever I release a new version of this software use the subscription feature of Freshmeat.
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
<address class="grey">Lennart Poettering <mznflapaf (at) 0pointer (dot) de>, October 2009</address>
|
|
Packit |
6baad5 |
|
|
Packit |
6baad5 |
</body>
|
|
Packit |
6baad5 |
</html>
|