From 95ecb6887802fd6f51da559e8c740a494625bf2a Mon Sep 17 00:00:00 2001 From: ian Date: Sat, 17 Apr 1999 17:18:29 +0000 Subject: [PATCH] Documentation files. --- INSTALL | 44 ++++++++++++++++++++++++++++++++++++++++++++ README | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 INSTALL create mode 100644 README diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..64075d0 --- /dev/null +++ b/INSTALL @@ -0,0 +1,44 @@ +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 . + +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. diff --git a/README b/README new file mode 100644 index 0000000..ecf261a --- /dev/null +++ b/README @@ -0,0 +1,50 @@ + 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.) -- 2.30.2