--- /dev/null
+INSTALLATION INSTRUCTIONS for ADNS
+
+ $ ./configure
+ $ make
+ # make install
+
+Unfortunately, since this is a beta, there is no good documentation
+yet. For now, use the comments in the public header file adns.h.
+
+
+You will find that adns requires a reasonably standard and up to date
+system.
+
+In particular, the build system assumes that you have ELF shared
+libraries. If you don't then please don't send me patches to support
+your kind of shared libraries, and don't send me patches to use
+libtool. I'm not interested in supporting non-ELF shared libraries.
+However, if you send me an appropriate patch I'd be willing to make it
+easy or automatic to disable the ELF shared library arrangements.
+
+You may find that GNU Make is required.
+
+
+COPYRIGHT
+
+This file, INSTALL, contains installation instructions and other
+details for adns.
+
+adns is Copyright (C)1997-9 Ian Jackson <ian@davenant.greenend.org.uk>.
+
+adns 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 your
+option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with userv as the file COPYING; if not, email me at the address
+above or write to the Free Software Foundation, 59 Temple Place -
+Suite 330, Boston, MA 02111-1307, USA.
--- /dev/null
+ adns
+
+ Advanced, easy to use, asynchronous-capable DNS client library.
+
+ 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:
+ * It is reasonably easy to use for simple programs which just want
+ to translate names to addresses, look up MX records, etc.
+ * It can be used in an asynchronous, non-blocking, manner. Many
+ queries can be handled simultaneously.
+ * Responses are decoded automatically into a natural representation
+ for a C program - there is no need to deal with DNS packet
+ formats.
+ * Sanity checking (eg, name syntax checking, reverse/forward
+ correspondence, CNAME pointing to CNAME) is performed
+ automatically.
+ * Time-to-live, CNAME and other similar information is returned in
+ an easy-to-use form, without affecting ease-of-use.
+ * 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.
+ * Errors are reported to the application in a way that distinguishes
+ the various causes of failure properly.
+ * Understands conventional resolv.conf, but this can overridden by
+ environment variables.
+ * 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, change its caching behaviour,
+ use a different flow of control model, etc.
+ * 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.
+
+Forthcoming:
+
+ I hope that future versions may also have the following features:
+ * The library can be used by threads in a multithreaded program in a
+ natural way. It will multiplex many threads' queries through a
+ single query socket.
+ * Limited caching behaviour.
+ * IPv6 support.
+
+ (Technical note: 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'. All properly
+ configured UN*X and GNU systems will already have such nameserver(s);
+ they are usually listed in /etc/resolv.conf.)