summaryrefslogtreecommitdiff
path: root/README.html
diff options
context:
space:
mode:
Diffstat (limited to 'README.html')
-rw-r--r--README.html232
1 files changed, 232 insertions, 0 deletions
diff --git a/README.html b/README.html
new file mode 100644
index 0000000..3d7c06e
--- /dev/null
+++ b/README.html
@@ -0,0 +1,232 @@
+<html><head><title>adns - advanced, alternative, asynchronous resolver</title>
+<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, 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>
+
+<li>It is reasonably easy to use for simple programs which just want
+to translate names to addresses, look up MX records, etc.
+
+<li>It can be used in an asynchronous, non-blocking, manner. Many
+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 and RRDATA
+formats.
+
+<li>Sanity checking (eg, name syntax checking, reverse/forward
+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>There is no global state in the library; resolver state is an
+opaque data structure which the client creates explicitly. A program
+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>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 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
+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:
+
+<ul>
+
+<li><code>adnslogres</code> is a much faster version of Apache's
+logresolv program.
+
+<li><code>adnsresfilter</code> is a filter which copies its input to
+its output, replacing IP addresses by the corresponding names, without
+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 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>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/docs/adns.h.txt">commented
+adns.h header file</A>, and the usage messages for the programs should
+be sufficient.
+
+<h2>Feedback</h2>
+
+I'd be pleased if you would let me know if you're using my library in
+your project, and what you think of it.
+
+<p>
+
+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, etc.
+
+<p>
+
+There are
+<A href="http://www.chiark.greenend.org.uk/mailman/listinfo">archives
+and subscription web pages</A>, or you can subscribe by sending mail
+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>Documentation</h2>
+
+<ul>
+<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,2003,2006,2014 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 3 of the License, or (at
+your option) any later version.
+
+<p>
+
+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/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>
+or email <code>ijackson@chiark.greenend.org.uk</code>.
+
+<p>
+
+<hr>
+Ian Jackson / <tt>ijackson@chiark.greenend.org.uk</tt>.
+<p>
+
+<A href="http://www.gnu.org/">GNU home page</A>;
+<A href="http://www.chiark.greenend.org.uk/">chiark home page</A>;
+<A href="/">site or mirror home page</A>
+<p>
+
+This web page is Copyright (C)1996-2005,2014 Ian Jackson. See the
+<A href="http://www.chiark.greenend.org.uk/~ian/sw-www-copy.html">Copyright/acknowledgements</A>.
+
+</body>
+</html>