<html><head><title>adns - advanced, alternative, asynchronous resolver</title>
-<!--
- Note to GNU webmasters and others who might edit this page: This
- file is maintained in GNU CVS, and also served on the author's own
- system, under the URL http://www.chiark.greenend.org.uk/adns/
- Please ensure that all links continine to be correct both for
- www.gnu.org and chiark.
-
- If you check in a change, please inform
- webmaster@chiark.greenend.org.uk.
-
- $Id$
- -->
<link rev="made" href="mailto:adns-maint@chiark.greenend.org.uk">
+<meta name="keywords" content="adns">
</head>
<body>
<h1>GNU adns</h1>
<strong>Advanced, easy to use, asynchronous-capable DNS client
library and utilities.</strong>
+<!-- Note: this file must contain portable HTML ! -->
+<!-- -->
+<!-- It is served on the GNU site and also from my own system, -->
+<!-- under the URL http://www.chiark.greenend.org.uk/adns/ -->
+<!-- Please ensure that all links continine to be correct -->
+<!-- both for www.gnu.org and chiark. -->
+<!-- -->
+
<p>
-adns is a resolver library for C (and C++) programs. In contrast with
-the existing interfaces, gethostbyname et al and libresolv, it has the
-following features:
+adns is a resolver library for C (and C++) programs, and a collection
+of useful DNS resolver utilities.
+
+
+<h2>C library</h2>
+
+In contrast with the standard interfaces, gethostbyname et al and
+libresolv, it has the following features:
<ul>
queries can be handled simultaneously.
<li>Responses are decoded automatically into a natural representation
-for a C program - there is no need to deal with DNS packet formats.
+for a C program - there is no need to deal with DNS packet and RRDATA
+formats.
<li>Sanity checking (eg, name syntax checking, reverse/forward
-correspondence, CNAME pointing to CNAME) is performed automatically.
+correspondence, CNAME pointing to CNAME) is performed automatically
+by default.
<li>Time-to-live, CNAME and other similar information is returned in
an easy-to-use form, without getting in the way.
<li>Errors are reported to the application in a way that distinguishes
the various causes of failure properly.
-<li>Understands conventional resolv.conf, but this can overridden by
-environment variables.
+<li>adns understands conventional resolv.conf, but this can overridden
+by environment variables.
<li>Flexibility. For example, the application can tell adns to:
-ignore environment variables (for setuid programs), disable sanity
-checks eg to return arbitrary data, override or ignore resolv.conf in
-favour of supplied configuration, etc.
+ignore environment variables (for setuid programs), disable hostname
+syntax sanity checks to return arbitrary data, override or ignore
+resolv.conf in favour of supplied configuration, etc.
<li>Believed to be correct ! For example, will correctly back off to
TCP in case of long replies or queries, or to other nameservers if
</ul>
+<h2>DNS utility programs</h2>
+
adns also comes with a number of utility programs for use from the
command line and in scripts:
output of netstat -n, tcpdump -ln, and the like, into it.
<li><code>adnshost</code> is a general-purpose DNS lookup utility
-which can be used easily in shell scripts to do simple lookups. In a
-more advanced mode it can be used as a general-purpose DNS helper
-program for scripting languages which can invoke and communicate with
-subprocesses.
+which can be used easily in from the command line and from shell
+scripts to do simple lookups. In a more advanced mode it can be used
+as a general-purpose DNS helper program for scripting languages which
+can invoke and communicate with subprocesses. See the
+<A href="http://www.chiark.greenend.org.uk/~ian/adns/docs/adnshost.txt">adnshost
+usage message</A> for a summary of its capabilities.
</ul>
-<h2>Forthcoming:</h2>
-
-A native Perl interface is in the works, thanks to Tony Finch.
-
-<p>
-
-I hope that future versions may also have the following features:
-
-<ul>
-
-<li>The library should be useable by threads in a multithreaded
-program in a natural way. It should multiplex many threads' queries
-through a single query socket.
-
-<li>IPv6 support.
-
-<li>Some kind of awareness of DNSSEC.
-
-<li>Possibly some very limited caching behaviour.
-
-</ul>
-
-(Technical note: adns requires a real nameserver like
-<A href="http://www.isc.org/view.cgi?/products/BIND/index.phtml">BIND</A>
-or
-<A href="http://www.dents.org/">Dents</A> running on
-the same system or a nearby one, which must be willing to provide
-`recursive service'. I.e., adns is a `stub resolver'. All properly
-configured UN*X and GNU systems will already have such nameserver(s);
-they are usually listed in /etc/resolv.conf.)
-
<h2>Documentation</h2>
I'm afraid there is no manual yet. However, competent C programmers
should be able to use the library based on the
-<A href="http://www.chiark.greenend.org.uk/~ian/adns/adns.h.txt">commented
-adns.h header file</A>.
+<A href="http://www.chiark.greenend.org.uk/~ian/adns/docs/adns.h.txt">commented
+adns.h header file</A>, and the usage messages for the programs should
+be sufficient.
<h2>Feedback</h2>
<p>
-If you are subscribed to <code>adns-discuss</code> please send
-feedback, including bug reports, there; otherwise send mail to
-<code>adns-bugreports@chiark.greenend.org.uk</code>. If you'd prefer
-that your message wasn't forwarded to the <code>adns-bugreports</code>
-list, send it to <code>adns-maint@chiark.greenend.org.uk</code>.
+Bug reports should be reported to the
+<a href="http://debbugs.gnu.org/">GNU Debbugs</a>. Send an email
+to <code>submit@debbugs.gnu.org</code> and at the top of your email,
+in a paragraph of its own, write the single line
+<pre>
+Package: adns
+</pre>
+Your bug report will be published via to the adns-discuss list.
+
+<p>
+
+Feedback and discussion takes place on the <code>adns-discuss</code>
+list. You can mail me privately
+at <code>ijackson@chiark.greenend.org.uk</code>.
<h2>Mailinglists</h2>
I have set up mailinglists <code>adns-announce</code> and
<code>adns-discuss</code>. The announcements list is moderated and
-will contain only announcements of important bugs, new versions, &c.
-The bug reports address mentioned above is also a mailing list; feel
-free to subscribe to it.
+will contain only announcements of important bugs, new versions, etc.
<p>
<code>adns-announce-REQUEST@chiark.greenend.org.uk</code> or
<code>adns-discuss-REQUEST@chiark.greenend.org.uk</code>.
-<h2>Download</h2>
+<h2>Documentation</h2>
-Available for download from
-<A href="http://www.chiark.greenend.org.uk/~ian/adns/">chiark.greenend.org.uk</A>
-are:
<ul>
-<li>The <A href="http://www.chiark.greenend.org.uk/~ian/adns/adns.tar.gz">current beta version</A>
- as a gzipped tarfile.
-<li><A href="http://www.chiark.greenend.org.uk/~ian/adns/adns.h.txt">adns.h</A>
- API header file with comments (currently there is no manual, sorry).
-<li>All versions released so far are also available via
- <A href="ftp://ftp.chiark.greenend.org.uk/users/ian/adns/">anonymous
- FTP</A>.
-<li>A mirror of my CVS repository is available via rsync from
- <code>rsync.chiark.greenend.org.uk::ftp/users/ian/cvs-pub/adns</code>
- (use FTP first to find your way around), or via
- <A href="http://www.chiark.greenend.org.uk/ucgi/~ijackson/cvsweb/adns/">cvsweb</A>.
+<li><A href="http://www.chiark.greenend.org.uk/~ian/adns/docs/adns.h.txt">adns.h
+ API header file with documentation comments</A>
+<li><A href="http://www.chiark.greenend.org.uk/~ian/adns/docs/adnshost.txt">usage
+ message for adnshost</A>
+</ul>
+
+<h2>Download and source code</h2>
+
+<ul>
+<li>The <A href="http://www.chiark.greenend.org.uk/~ian/adns/adns.tar.gz">current
+ release</A> as a gzipped tarfile.
+<li><A href="http://www.chiark.greenend.org.uk/~ian/adns/ftp/">Previous
+ versions</A> and other files (including OpenPGP signatures).
+<li><A href="http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git/adns.git/">master
+ git (version control) repository browser</a>.
</ul>
adns is also available from the
<A href="http://www.gnu.org/">GNU Project</A> FTP servers and their
<A href="http://www.gnu.org/order/ftp.html">mirrors</A>.
+<h2>Installation note</h2>
+
+adns requires a real nameserver like BIND running on the same system
+or a nearby one, which must be willing to provide `recursive service'.
+I.e., adns is a `stub resolver'.
+
+<p>
+adns requires that your real nameserver is on the same machine, or
+connected via a secure network, so that an attacker cannot fake the
+replies to adns's queries.
+
+<h2>References and related projects</h2>
+
+<ul>
+<li><a href="http://code.google.com/p/adns-python">Python bindings</a>
+ by Andy Dustman.
+<!-- <li><a href="http://cryp.to/hsdns/">Haskell bindings</a>
+ by Peter Simons. -->
+<li><a href="http://www.lysator.liu.se/liboop/">liboop event loop library</a>
+ has a built-in binding for adns.
+<li><a href="http://adns.jgaa.com/">port to MS Visual Studio 6 C++</a>
+ by Jarle Aase.
+</ul>
+
<h2>Copyright and licensing</h2>
-<kbd>adns</kbd> is Copyright 1997-2000 Ian Jackson, Copyright 1999
-Tony Finch, and Copyright (C) 1991 Massachusetts Institute of
-Technology.
+<kbd>adns</kbd> is Copyright 1997-2000,2003,2006,2014-2016,2020 Ian
+Jackson, Copyright 2014 Mark Wooding, Copyright 1999-2000,2003,2006
+Tony Finch, and Copyright 1991 Massachusetts Institute of Technology.
<p>
<kbd>adns</kbd> is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
+the Free Software Foundation; either version 3 of the License, or (at
your option) any later version.
<p>
be useful, but <em>without any warranty</em>; without even the implied
warranty of <em>merchantability</em> or <em>fitness for a particular
purpose</em>. See the
-<A href="http://www.chiark.greenend.org.uk/~ian/COPYING.txt">GNU
+<A href="http://www.chiark.greenend.org.uk/~ian/adns/docs/COPYING.txt">GNU
General Public License</A> for more details.
<p>
You should have received a copy of the GNU General Public License
along with <kbd>adns</kbd>, or one should be available above; if not,
-write to the
-<A href="http://www.fsf.org/">Free Software Foundation</A>,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA,
-or email <code>adns-maint@chiark.greenend.org.uk</code>.
+write to the <A href="http://www.fsf.org/">Free Software Foundation</A>
+or email <code>ijackson@chiark.greenend.org.uk</code>.
<p>
<hr>
-<A href="http://www.chiark.greenend.org.uk/">Ian Jackson</A> /
-<A href="mailto:adns-maint@chiark.greenend.org.uk"><tt>adns-maint@chiark.greenend.org.uk</tt></A>;
-more <A href="http://www.chiark.greenend.org.uk/~ian/software/">free
-software</A> by me.
+Ian Jackson / <tt>ijackson@chiark.greenend.org.uk</tt>.
<p>
<A href="http://www.gnu.org/">GNU home page</A>;
<A href="/">site or mirror home page</A>
<p>
-This web page is Copyright (C)1996-2000 Ian Jackson. See the
+This web page is Copyright (C)1996-2005,2014-2016 Ian Jackson. See the
<A href="http://www.chiark.greenend.org.uk/~ian/sw-www-copy.html">Copyright/acknowledgements</A>.
-<p>
-
-Use any browser -
-<A href="http://www.anybrowser.org/campaign/">Campaign for a non-browser-specific WWW</A>
</body>
</html>