chiark / gitweb /
changelog, etc.: Finalise 1.5.1.
[adns.git] / README.html
index 7d44601a1a5fb8620de8338dbcf5ae748d1d48ec..07123cd49c010279e9e5b40af4858baeac8e712f 100644 (file)
@@ -1,17 +1,6 @@
 <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>
 
@@ -34,10 +36,12 @@ to translate names to addresses, look up MX records, etc.
 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.
@@ -49,13 +53,13 @@ can have several instances of the resolver.
 <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
@@ -63,6 +67,8 @@ several are available.  It has sensible handling of bad responses etc.
 
 </ul>
 
+<h2>DNS utility programs</h2>
+
 adns also comes with a number of utility programs for use from the
 command line and in scripts:
 
@@ -77,50 +83,22 @@ unduly delaying the output.  For example, you can usefully pipe the
 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>
 
@@ -129,19 +107,26 @@ your project, and what you think of it.
 
 <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>
 
@@ -152,40 +137,65 @@ containing the word `subscribe' to
 <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 Ian Jackson,
+Copyright 2014 Mark Wooding, Copyright 1999-2000,2003,2006 Tony Finch,
+and Copyright (C) 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>
@@ -194,25 +204,20 @@ This program and documentation is distributed in the hope that it will
 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>;
@@ -220,12 +225,8 @@ software</A> by me.
 <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>