BIND: update vendor tree to 9.5.2-P2
authorJan Lentfer <lentferj@monster.lan.net>
Thu, 21 Jan 2010 16:11:19 +0000 (17:11 +0100)
committerJan Lentfer <lentferj@monster.lan.net>
Thu, 21 Jan 2010 16:27:14 +0000 (17:27 +0100)
* This includes fixes for VU#418861 & VU#360341

57 files changed:
contrib/bind/CHANGES
contrib/bind/FAQ
contrib/bind/README.DRAGONFLY
contrib/bind/bin/named/query.c
contrib/bind/lib/bind/include/isc/list.h
contrib/bind/lib/bind/inet/inet_addr.c
contrib/bind/lib/bind/inet/inet_cidr_pton.c
contrib/bind/lib/bind/inet/inet_lnaof.c
contrib/bind/lib/bind/inet/inet_makeaddr.c
contrib/bind/lib/bind/inet/inet_net_ntop.c
contrib/bind/lib/bind/inet/inet_net_pton.c
contrib/bind/lib/bind/inet/inet_neta.c
contrib/bind/lib/bind/inet/inet_netof.c
contrib/bind/lib/bind/inet/inet_network.c
contrib/bind/lib/bind/inet/inet_ntoa.c
contrib/bind/lib/bind/inet/inet_ntop.c
contrib/bind/lib/bind/inet/inet_pton.c
contrib/bind/lib/bind/inet/nsap_addr.c
contrib/bind/lib/bind/irs/getnetgrent.c
contrib/bind/lib/bind/isc/ev_streams.c
contrib/bind/lib/bind/isc/ev_timers.c
contrib/bind/lib/bind/isc/eventlib_p.h
contrib/bind/lib/bind/nameser/ns_print.c
contrib/bind/lib/bind/nameser/ns_samedomain.c
contrib/bind/lib/bind/resolv/herror.c
contrib/bind/lib/bind/resolv/mtctxres.c
contrib/bind/lib/bind/resolv/res_comp.c
contrib/bind/lib/bind/resolv/res_data.c
contrib/bind/lib/bind/resolv/res_debug.c
contrib/bind/lib/bind/resolv/res_findzonecut.c
contrib/bind/lib/bind/resolv/res_init.c
contrib/bind/lib/bind/resolv/res_mkupdate.c
contrib/bind/lib/bind/resolv/res_send.c
contrib/bind/lib/bind/resolv/res_update.c
contrib/bind/lib/dns/include/dns/db.h
contrib/bind/lib/dns/include/dns/types.h
contrib/bind/lib/dns/rbtdb.c
contrib/bind/lib/dns/resolver.c
contrib/bind/lib/dns/validator.c
contrib/bind/lib/lwres/man/lwres.html
contrib/bind/lib/lwres/man/lwres_buffer.html
contrib/bind/lib/lwres/man/lwres_config.html
contrib/bind/lib/lwres/man/lwres_context.html
contrib/bind/lib/lwres/man/lwres_gabn.html
contrib/bind/lib/lwres/man/lwres_gai_strerror.html
contrib/bind/lib/lwres/man/lwres_getaddrinfo.html
contrib/bind/lib/lwres/man/lwres_gethostent.html
contrib/bind/lib/lwres/man/lwres_getipnode.html
contrib/bind/lib/lwres/man/lwres_getnameinfo.html
contrib/bind/lib/lwres/man/lwres_getrrsetbyname.html
contrib/bind/lib/lwres/man/lwres_gnba.html
contrib/bind/lib/lwres/man/lwres_hstrerror.html
contrib/bind/lib/lwres/man/lwres_inetntop.html
contrib/bind/lib/lwres/man/lwres_noop.html
contrib/bind/lib/lwres/man/lwres_packet.html
contrib/bind/lib/lwres/man/lwres_resutil.html
contrib/bind/version

index 43e1648..f89ca86 100644 (file)
@@ -1,3 +1,15 @@
+       --- 9.5.2-P2 released ---
+
+2831.  [security]      Do not attempt to validate or cache
+                       out-of-bailiwick data returned with a secure
+                       answer; it must be re-fetched from its original
+                       source and validated in that context. [RT #20819]
+
+2828.  [security]      Cached CNAME or DNAME RR could be returned to clients
+                       without DNSSEC validation. [RT #20737]
+
+2827.  [security]      Bogus NXDOMAIN could be cached as if valid. [RT #20712]
+
        --- 9.5.2-P1 released ---
 
 2772.  [security]      When validating, track whether pending data was from
index 4df1d76..b256ed8 100644 (file)
@@ -153,8 +153,8 @@ A: BIND 9.3 and later: Use TSIG to select the appropriate view.
 
    Master 10.0.1.1:
            key "external" {
-                   algorithm hmac-md5;
-                   secret "xxxxxxxx";
+                   algorithm hmac-sha256;
+                   secret "xxxxxxxxxxxxxxxxxxxxxxxx";
            };
            view "internal" {
                    match-clients { !key external; // reject message ment for the
@@ -174,8 +174,8 @@ A: BIND 9.3 and later: Use TSIG to select the appropriate view.
 
    Slave 10.0.1.2:
            key "external" {
-                   algorithm hmac-md5;
-                   secret "xxxxxxxx";
+                   algorithm hmac-sha256;
+                   secret "xxxxxxxxxxxxxxxxxxxxxxxx";
            };
            view "internal" {
                    match-clients { !key external; 10.0.1/24; };
@@ -225,13 +225,13 @@ A: You choose one view to be master and the second a slave and transfer
 
    Master 10.0.1.1:
            key "external" {
-                   algorithm hmac-md5;
-                   secret "xxxxxxxx";
+                   algorithm hmac-sha256;
+                   secret "xxxxxxxxxxxxxxxxxxxxxxxx";
            };
 
            key "mykey" {
-                   algorithm hmac-md5;
-                   secret "yyyyyyyy";
+                   algorithm hmac-sha256;
+                   secret "yyyyyyyyyyyyyyyyyyyyyyyy";
            };
 
            view "internal" {
@@ -244,7 +244,7 @@ A: You choose one view to be master and the second a slave and transfer
                            type master;
                            file "internal/example.db";
                            allow-update { key mykey; };
-                           notify-also { 10.0.1.1; };
+                           also-notify { 10.0.1.1; };
                    };
            };
 
@@ -254,7 +254,7 @@ A: You choose one view to be master and the second a slave and transfer
                            type slave;
                            file "external/example.db";
                            masters { 10.0.1.1; };
-                           transfer-source { 10.0.1.1; };
+                           transfer-source 10.0.1.1;
                            // allow-update-forwarding { any; };
                            // allow-notify { ... };
                    };
index 8b4718e..78e1c95 100644 (file)
@@ -9,8 +9,8 @@
 
        https://www.isc.org/downloadables/11
 
-    MD5  (bind-9.5.2-P1.tar.gz) = e3c691aa8d6b1a7ad4691fbb49f3cc58
-    SHA1 (bind-9.5.2-P1.tar.gz) = 532d448554601cec13a645df812638d46fd41743
+    MD5  (bind-9.5.2-P2.tar.gz) = 67f228a9083de7509dacd87256060afb
+    SHA1 (bind-9.5.2-P2.tar.gz) = ffa6df6752976e6bdd05508c5cc5131ef9a097f1
 
     DO NOT CREATE ANY FILES IN THIS DIRECTORY HIERARCHY!  THIS HIERARCHY
     REPRESENTS AN EXACT COPY, MINUS UNNEEDED OF THE ORIGINAL ARCHIVE.
index 9565eb6..ebba4d4 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: query.c,v 1.298.48.15.2.1 2009/11/18 23:41:17 marka Exp $ */
+/* $Id: query.c,v 1.298.48.15.2.4 2009/12/31 22:52:47 each Exp $ */
 
 /*! \file */
 
@@ -1143,7 +1143,8 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
                        goto cleanup;
        }
        result = dns_db_find(db, name, version, type,
-                            client->query.dboptions | DNS_DBFIND_GLUEOK,
+                            client->query.dboptions |
+                            DNS_DBFIND_GLUEOK | DNS_DBFIND_ADDITIONALOK,
                             client->now, &node, fname, rdataset,
                             sigrdataset);
        if (result == DNS_R_GLUE &&
@@ -1628,7 +1629,8 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
                goto try_glue;
 
        result = dns_db_find(db, name, version, type,
-                            client->query.dboptions | DNS_DBFIND_GLUEOK,
+                            client->query.dboptions |
+                            DNS_DBFIND_GLUEOK | DNS_DBFIND_ADDITIONALOK,
                             client->now, &node, fname, NULL, NULL);
        if (result == ISC_R_SUCCESS)
                goto found;
@@ -3389,8 +3391,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
        dns_rdataset_t *noqname;
        isc_boolean_t resuming;
        int line = -1;
-       dns_rdataset_t tmprdataset;
-       unsigned int dboptions;
 
        CTRACE("query_find");
 
@@ -3607,49 +3607,9 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
        /*
         * Now look for an answer in the database.
         */
-       dboptions = client->query.dboptions;
-       if (sigrdataset == NULL && client->view->enablednssec) {
-               /*
-                * If the client doesn't want DNSSEC we still want to
-                * look for any data pending validation to save a remote
-                * lookup if possible.
-                */
-               dns_rdataset_init(&tmprdataset);
-               sigrdataset = &tmprdataset;
-               dboptions |= DNS_DBFIND_PENDINGOK;
-       }
- refind:
        result = dns_db_find(db, client->query.qname, version, type,
-                            dboptions, client->now, &node, fname,
-                            rdataset, sigrdataset);
-       /*
-        * If we have found pending data try to validate it.
-        * If the data does not validate as secure and we can't
-        * use the unvalidated data requery the database with
-        * pending disabled to prevent infinite looping.
-        */
-       if (result != ISC_R_SUCCESS || !DNS_TRUST_PENDING(rdataset->trust))
-               goto validation_done;
-       if (validate(client, db, fname, rdataset, sigrdataset))
-               goto validation_done;
-       if (rdataset->trust != dns_trust_pending_answer ||
-           !PENDINGOK(client->query.dboptions)) {
-               dns_rdataset_disassociate(rdataset);
-               if (sigrdataset != NULL &&
-                   dns_rdataset_isassociated(sigrdataset))
-                       dns_rdataset_disassociate(sigrdataset);
-               if (sigrdataset == &tmprdataset)
-                       sigrdataset = NULL;
-               dns_db_detachnode(db, &node);
-               dboptions &= ~DNS_DBFIND_PENDINGOK;
-               goto refind;
-       }
- validation_done:
-       if (sigrdataset == &tmprdataset) {
-               if (dns_rdataset_isassociated(sigrdataset))
-                       dns_rdataset_disassociate(sigrdataset);
-               sigrdataset = NULL;
-       }
+                            client->query.dboptions, client->now,
+                            &node, fname, rdataset, sigrdataset);
 
  resume:
        CTRACE("query_find: resume");
index c85c667..3222240 100644 (file)
 
 #ifndef LIST_H
 #define LIST_H 1
+#ifdef _LIBC
+#include <assert.h>
+#define INSIST(cond)   assert(cond)
+#else
 #include <isc/assertions.h>
-
+#endif
 #define LIST(type) struct { type *head, *tail; }
 #define INIT_LIST(list) \
        do { (list).head = NULL; (list).tail = NULL; } while (0)
index 56270ff..b532873 100644 (file)
@@ -89,7 +89,7 @@ static const char rcsid[] = "$Id: inet_addr.c,v 1.5 2005/04/27 04:56:19 sra Exp
  * Ascii internet address interpretation routine.
  * The value returned is in network order.
  */
-u_long
+in_addr_t
 inet_addr(const char *cp) {
        struct in_addr val;
 
@@ -205,4 +205,14 @@ inet_aton(const char *cp, struct in_addr *addr) {
        return (1);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_addr
+__weak_reference(__inet_addr, inet_addr);
+#undef inet_aton
+__weak_reference(__inet_aton, inet_aton);
+#endif
 /*! \file */
index 07652af..1d3ce8e 100644 (file)
@@ -27,7 +27,12 @@ static const char rcsid[] = "$Id: inet_cidr_pton.c,v 1.6 2005/04/27 04:56:19 sra
 #include <arpa/nameser.h>
 #include <arpa/inet.h>
 
+#ifdef _LIBC
+#include <assert.h>
+#define                INSIST(x)       assert(x)
+#else
 #include <isc/assertions.h>
+#endif
 #include <ctype.h>
 #include <errno.h>
 #include <stdio.h>
index 70ac409..e4be6f7 100644 (file)
@@ -48,11 +48,11 @@ static const char sccsid[] = "@(#)inet_lnaof.c      8.1 (Berkeley) 6/4/93";
  * internet address; handles class a/b/c network
  * number formats.
  */
-u_long
+in_addr_t
 inet_lnaof(in)
        struct in_addr in;
 {
-       register u_long i = ntohl(in.s_addr);
+       in_addr_t i = ntohl(in.s_addr);
 
        if (IN_CLASSA(i))
                return ((i)&IN_CLASSA_HOST);
@@ -62,4 +62,12 @@ inet_lnaof(in)
                return ((i)&IN_CLASSC_HOST);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_lnaof
+__weak_reference(__inet_lnaof, inet_lnaof);
+#endif
 /*! \file */
index c56cb3e..f41b98d 100644 (file)
@@ -49,7 +49,7 @@ static const char sccsid[] = "@(#)inet_makeaddr.c     8.1 (Berkeley) 6/4/93";
  */
 struct in_addr
 inet_makeaddr(net, host)
-       u_long net, host;
+       in_addr_t net, host;
 {
        struct in_addr a;
 
@@ -65,4 +65,12 @@ inet_makeaddr(net, host)
        return (a);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_makeaddr
+__weak_reference(__inet_makeaddr, inet_makeaddr);
+#endif
 /*! \file */
index fb28e3c..5d4cea6 100644 (file)
@@ -276,4 +276,12 @@ emsgsize:
        return (NULL);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_net_ntop
+__weak_reference(__inet_net_ntop, inet_net_ntop);
+#endif
 /*! \file */
index b0ee27a..a55cc11 100644 (file)
@@ -27,7 +27,12 @@ static const char rcsid[] = "$Id: inet_net_pton.c,v 1.8.672.1 2008/08/26 04:42:3
 #include <arpa/nameser.h>
 #include <arpa/inet.h>
 
+#ifdef _LIBC
+#include <assert.h>
+#define INSIST(cond)   assert(cond)
+#else
 #include <isc/assertions.h>
+#endif
 #include <ctype.h>
 #include <errno.h>
 #include <stdio.h>
@@ -404,4 +409,12 @@ inet_net_pton(int af, const char *src, void *dst, size_t size) {
        }
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_net_pton
+__weak_reference(__inet_net_pton, inet_net_pton);
+#endif
 /*! \file */
index 63a6c20..95d6c88 100644 (file)
@@ -51,7 +51,7 @@ static const char rcsid[] = "$Id: inet_neta.c,v 1.3 2005/04/27 04:56:20 sra Exp
  */
 char *
 inet_neta(src, dst, size)
-       u_long src;
+       in_addr_t src;
        char *dst;
        size_t size;
 {
@@ -86,4 +86,12 @@ inet_neta(src, dst, size)
        return (NULL);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_neta
+__weak_reference(__inet_neta, inet_neta);
+#endif
 /*! \file */
index c228e3d..c4f11fa 100644 (file)
@@ -47,12 +47,12 @@ static const char sccsid[] = "@(#)inet_netof.c      8.1 (Berkeley) 6/4/93";
  * Return the network number from an internet
  * address; handles class a/b/c network #'s.
  */
-u_long
+in_addr_t
 inet_netof(in)
        struct in_addr in;
 {
-       register u_long i = ntohl(in.s_addr);
-
+       in_addr_t i = ntohl(in.s_addr);
+       
        if (IN_CLASSA(i))
                return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
        else if (IN_CLASSB(i))
@@ -61,4 +61,12 @@ inet_netof(in)
                return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_netof
+__weak_reference(__inet_netof, inet_netof);
+#endif
 /*! \file */
index 47976cf..84e7519 100644 (file)
@@ -49,15 +49,14 @@ static const char sccsid[] = "@(#)inet_network.c    8.1 (Berkeley) 6/4/93";
  * The library routines call this routine to interpret
  * network numbers.
  */
-u_long
+in_addr_t
 inet_network(cp)
-       register const char *cp;
+       const char *cp;
 {
-       register u_long val, base, n, i;
-       register char c;
-       u_long parts[4], *pp = parts;
-       int digit;
-
+       in_addr_t val, base, n;
+       char c;
+       in_addr_t parts[4], *pp = parts;
+       int i, digit;
 again:
        val = 0; base = 10; digit = 0;
        if (*cp == '0')
@@ -103,4 +102,12 @@ again:
        return (val);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_network
+__weak_reference(__inet_network, inet_network);
+#endif
 /*! \file */
index 983121e..67b04cb 100644 (file)
@@ -61,4 +61,21 @@ inet_ntoa(struct in_addr in) {
        return (ret);
 }
 
+#ifdef _LIBC
+char *
+inet_ntoa_r(struct in_addr in, char *buf, socklen_t size)
+{
+
+       inet_ntop(AF_INET, &in, buf, size);
+       return (buf);
+}
+
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+*/
+#undef inet_ntoa
+__weak_reference(__inet_ntoa, inet_ntoa);
+__weak_reference(__inet_ntoa_r, inet_ntoa_r);
+#endif
 /*! \file */
index 114ca5d..b1a49b5 100644 (file)
@@ -26,7 +26,7 @@ static const char rcsid[] = "$Id: inet_ntop.c,v 1.5 2005/11/03 22:59:52 marka Ex
 #include <sys/socket.h>
 
 #include <netinet/in.h>
-#include <arpa/inet.h>
+#include "arpa/inet.h"
 #include <arpa/nameser.h>
 
 #include <errno.h>
@@ -204,4 +204,12 @@ inet_ntop6(src, dst, size)
        return (dst);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_ntop
+__weak_reference(__inet_ntop, inet_ntop);
+#endif
 /*! \file */
index 2c516c7..6444bb5 100644 (file)
@@ -220,4 +220,12 @@ inet_pton6(src, dst)
        return (1);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_pton
+__weak_reference(__inet_pton, inet_pton);
+#endif
 /*! \file */
index b6432e1..05cfabf 100644 (file)
@@ -31,7 +31,7 @@ static const char rcsid[] = "$Id: nsap_addr.c,v 1.5 2005/07/28 06:51:48 marka Ex
 
 #include <ctype.h>
 #include <resolv.h>
-#include <resolv_mt.h>
+#include "resolv_mt.h"
 
 #include "port_after.h"
 
@@ -108,4 +108,14 @@ inet_nsap_ntoa(int binlen, const u_char *binary, char *ascii) {
        return (start);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <arpa/inet.h>.
+ */
+#undef inet_nsap_addr
+__weak_reference(__inet_nsap_addr, inet_nsap_addr);
+#undef inet_nsap_ntoa
+__weak_reference(__inet_nsap_ntoa, inet_nsap_ntoa);
+#endif
 /*! \file */
index 697de4b..4400fd4 100644 (file)
@@ -77,7 +77,7 @@ innetgr(INNETGR_ARGS) {
 
 int
 getnetgrent(NGR_R_CONST char **host, NGR_R_CONST char **user,
-           NGR_R_CONST char **domain)
+               NGR_R_CONST char **domain)
 {
        struct net_data *net_data = init();
        const char *ch, *cu, *cd;
index 5dad36d..eefebf4 100644 (file)
@@ -24,24 +24,30 @@ static const char rcsid[] = "$Id: ev_streams.c,v 1.5 2005/04/27 04:56:36 sra Exp
 #endif
 
 #include "port_before.h"
+#ifndef _LIBC
 #include "fd_setsize.h"
+#endif
 
 #include <sys/types.h>
 #include <sys/uio.h>
 
 #include <errno.h>
 
-#include <isc/eventlib.h>
+#include "isc/eventlib.h"
+#ifndef _LIBC
 #include <isc/assertions.h>
+#endif
 #include "eventlib_p.h"
 
 #include "port_after.h"
 
+#ifndef _LIBC
 static int     copyvec(evStream *str, const struct iovec *iov, int iocnt);
 static void    consume(evStream *str, size_t bytes);
 static void    done(evContext opaqueCtx, evStream *str);
 static void    writable(evContext opaqueCtx, void *uap, int fd, int evmask);
 static void    readable(evContext opaqueCtx, void *uap, int fd, int evmask);
+#endif
 
 struct iovec
 evConsIovec(void *buf, size_t cnt) {
@@ -53,6 +59,7 @@ evConsIovec(void *buf, size_t cnt) {
        return (ret);
 }
 
+#ifndef _LIBC
 int
 evWrite(evContext opaqueCtx, int fd, const struct iovec *iov, int iocnt,
        evStreamFunc func, void *uap, evStreamID *id)
@@ -304,5 +311,6 @@ readable(evContext opaqueCtx, void *uap, int fd, int evmask) {
        if (str->ioDone <= 0 || str->ioDone == str->ioTotal)
                done(opaqueCtx, str);
 }
+#endif /* !_LIBC */
 
 /*! \file */
index 12ac2ce..735e0e3 100644 (file)
@@ -26,12 +26,16 @@ static const char rcsid[] = "$Id: ev_timers.c,v 1.6 2005/04/27 04:56:36 sra Exp
 /* Import. */
 
 #include "port_before.h"
+#ifndef _LIBC
 #include "fd_setsize.h"
+#endif
 
 #include <errno.h>
 
+#ifndef _LIBC
 #include <isc/assertions.h>
-#include <isc/eventlib.h>
+#endif
+#include "isc/eventlib.h"
 #include "eventlib_p.h"
 
 #include "port_after.h"
@@ -42,7 +46,9 @@ static const char rcsid[] = "$Id: ev_timers.c,v 1.6 2005/04/27 04:56:36 sra Exp
 #define BILLION 1000000000
 
 /* Forward. */
-
+#ifdef _LIBC
+static int     __evOptMonoTime;
+#else
 static int due_sooner(void *, void *);
 static void set_index(void *, int);
 static void free_timer(void *, void *);
@@ -58,7 +64,7 @@ typedef struct {
        struct timespec max_idle;
        evTimer *       timer;
 } idle_timer;
-
+#endif
 /* Public. */
 
 struct timespec
@@ -138,12 +144,14 @@ evUTCTime() {
        return (evTimeSpec(now));
 }
 
+#ifndef _LIBC 
 struct timespec
 evLastEventTime(evContext opaqueCtx) {
        evContext_p *ctx = opaqueCtx.opaque;
 
        return (ctx->lastEventTime);
 }
+#endif
 
 struct timespec
 evTimeSpec(struct timeval tv) {
@@ -153,7 +161,7 @@ evTimeSpec(struct timeval tv) {
        ts.tv_nsec = tv.tv_usec * 1000;
        return (ts);
 }
-
+#if !defined(USE_KQUEUE) || !defined(_LIBC)
 struct timeval
 evTimeVal(struct timespec ts) {
        struct timeval tv;
@@ -162,7 +170,9 @@ evTimeVal(struct timespec ts) {
        tv.tv_usec = ts.tv_nsec / 1000;
        return (tv);
 }
+#endif
 
+#ifndef _LIBC
 int
 evSetTimer(evContext opaqueCtx,
           evTimerFunc func,
@@ -495,5 +505,6 @@ idle_timeout(evContext opaqueCtx,
                this->timer->inter = evSubTime(this->max_idle, idle);
        }
 }
+#endif /* !_LIBC */
 
 /*! \file */
index 0a3614a..f060b06 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
+#ifndef _LIBC
 #include <isc/heap.h>
 #include <isc/list.h>
 #include <isc/memcluster.h>
+#endif
 
 #define        EV_MASK_ALL     (EV_READ | EV_WRITE | EV_EXCEPT)
 #define EV_ERR(e)              return (errno = (e), -1)
@@ -86,6 +88,7 @@ typedef struct evConn {
        struct evConn * next;
 } evConn;
 
+#ifndef _LIBC
 typedef struct evAccept {
        int             fd;
        union {
@@ -175,6 +178,7 @@ typedef struct evEvent_p {
                struct {  const void *placeholder;  }           null;
        } u;
 } evEvent_p;
+#endif /* !_LIBC */
 
 #ifdef USE_POLL
 typedef struct { 
@@ -210,6 +214,7 @@ extern void         __fd_set(int fd, __evEmulMask *maskp);
 
 #endif /* USE_POLL */
 
+#ifndef _LIBC
 typedef struct {
        /* Global. */
        const evEvent_p *cur;
@@ -274,8 +279,11 @@ void evDestroyTimers(const evContext_p *);
 /* ev_waits.c */
 #define evFreeWait __evFreeWait
 evWait *evFreeWait(evContext_p *ctx, evWait *old);
+#endif /* !_LIBC */
 
 /* Global options */
+#ifndef _LIBC
 extern int     __evOptMonoTime;
+#endif /* !_LIBC */
 
 #endif /*_EVENTLIB_P_H*/
index 6a23e9a..4dc20dc 100644 (file)
@@ -30,8 +30,13 @@ static const char rcsid[] = "$Id: ns_print.c,v 1.10 2005/04/27 04:56:40 sra Exp
 #include <arpa/nameser.h>
 #include <arpa/inet.h>
 
+#ifdef _LIBC
+#include <assert.h>
+#define INSIST(cond)   assert(cond)
+#else
 #include <isc/assertions.h>
 #include <isc/dst.h>
+#endif
 #include <errno.h>
 #include <resolv.h>
 #include <string.h>
@@ -454,7 +459,11 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
                        goto formerr;
 
                /* Key flags, Protocol, Algorithm. */
+#ifndef _LIBC
                key_id = dst_s_dns_key_id(rdata, edata-rdata);
+#else
+               key_id = 0;
+#endif
                keyflags = ns_get16(rdata);  rdata += NS_INT16SZ;
                protocol = *rdata++;
                algorithm = *rdata++;
index 5e9f5ca..ee89009 100644 (file)
@@ -141,13 +141,17 @@ ns_samedomain(const char *a, const char *b) {
        return (strncasecmp(cp, b, lb) == 0);
 }
 
-/*%
+#ifndef _LIBC
+/*
+ * int
+ * ns_subdomain(a, b)
  *     is "a" a subdomain of "b"?
  */
 int
 ns_subdomain(const char *a, const char *b) {
        return (ns_samename(a, b) != 1 && ns_samedomain(a, b));
 }
+#endif
 
 /*%
  *     make a canonical copy of domain name "src"
index 703ab8f..a342237 100644 (file)
@@ -55,6 +55,10 @@ static const char rcsid[] = "$Id: herror.c,v 1.4 2005/04/27 04:56:41 sra Exp $";
 
 #include "port_before.h"
 
+#ifdef _LIBC
+#include "namespace.h"
+#endif
+
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/uio.h>
@@ -66,7 +70,11 @@ static const char rcsid[] = "$Id: herror.c,v 1.4 2005/04/27 04:56:41 sra Exp $";
 #include <resolv.h>
 #include <string.h>
 #include <unistd.h>
+#ifndef _LIBC
 #include <irs.h>
+#else
+#include "un-namespace.h"
+#endif
 
 #include "port_after.h"
 
@@ -110,7 +118,11 @@ herror(const char *s) {
        DE_CONST("\n", t);
        v->iov_base = t;
        v->iov_len = 1;
+#ifndef _LIBC
        writev(STDERR_FILENO, iov, (v - iov) + 1);
+#else
+       _writev(STDERR_FILENO, iov, (v - iov) + 1);
+#endif
 }
 
 /*%
index 635bbd4..6f9f586 100644 (file)
@@ -1,13 +1,18 @@
 #include <port_before.h>
 #ifdef DO_PTHREADS
 #include <pthread.h>
+#ifdef _LIBC
+#include <pthread_np.h>
+#endif
 #endif
 #include <errno.h>
 #include <netdb.h>
 #include <stdlib.h>
 #include <string.h>
-#include <resolv_mt.h>
+#include "resolv_mt.h"
+#ifndef _LIBC
 #include <irs.h>
+#endif
 #include <port_after.h>
 
 #ifdef DO_PTHREADS
@@ -40,6 +45,7 @@ _mtctxres_init(void) {
 }
 #endif
 
+#ifndef _LIBC
 /*
  * To support binaries that used the private MT-safe interface in
  * Solaris 8, we still need to provide the __res_enable_mt()
@@ -49,6 +55,7 @@ int
 __res_enable_mt(void) {
        return (-1);
 }
+#endif
 
 int
 __res_disable_mt(void) {
@@ -99,6 +106,12 @@ ___mtctxres(void) {
 #ifdef DO_PTHREADS
        mtctxres_t      *mt;
 
+#ifdef _LIBC
+       if (pthread_main_np() != 0)
+               return (&sharedctx);
+#endif
+
+
        /*
         * This if clause should only be executed if we are linking
         * statically.  When linked dynamically _mtctxres_init() should
index 08a66b2..af182ee 100644 (file)
@@ -262,4 +262,14 @@ u_int16_t _getshort(const u_char *src) { return (ns_get16(src)); }
 #endif /*__ultrix__*/
 #endif /*BIND_4_COMPAT*/
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <resolv.h>.
+ */
+#undef dn_comp
+__weak_reference(__dn_comp, dn_comp);
+#undef dn_expand
+__weak_reference(__dn_expand, dn_expand);
+#endif
 /*! \file */
index be5a125..d301872 100644 (file)
@@ -40,6 +40,10 @@ static const char rcsid[] = "$Id: res_data.c,v 1.5 2007/09/14 05:32:25 marka Exp
 #include <unistd.h>
 
 #include "port_after.h"
+#ifndef _LIBC
+#undef _res
+#endif
+
 
 const char *_res_opcodes[] = {
        "QUERY",
@@ -71,11 +75,13 @@ const char *_res_sectioncodes[] = {
 
 #undef _res
 #ifndef __BIND_NOSTATIC
+#ifndef _LIBC
 struct __res_state _res
 # if defined(__BIND_RES_TEXT)
        = { RES_TIMEOUT, }      /*%< Motorola, et al. */
 # endif
         ;
+#endif /* !_LIBC */
 
 #if defined(DO_PTHREADS) || defined(__linux)
 #define _res (*__res_state())
@@ -111,7 +117,11 @@ res_init(void) {
        if (!_res.retrans)
                _res.retrans = RES_TIMEOUT;
        if (!_res.retry)
+#ifndef _LIBC
                _res.retry = 4;
+#else
+               _res.retry = RES_DFLRETRY;
+#endif
        if (!(_res.options & RES_INIT))
                _res.options = RES_DEFAULT;
 
@@ -185,6 +195,7 @@ res_query(const char *name, /*!< domain name  */
        return (res_nquery(&_res, name, class, type, answer, anslen));
 }
 
+#ifndef _LIBC
 void
 res_send_setqhook(res_send_qhook hook) {
        _res.qhook = hook;
@@ -194,6 +205,7 @@ void
 res_send_setrhook(res_send_rhook hook) {
        _res.rhook = hook;
 }
+#endif
 
 int
 res_isourserver(const struct sockaddr_in *inp) {
@@ -210,6 +222,7 @@ res_send(const u_char *buf, int buflen, u_char *ans, int anssiz) {
        return (res_nsend(&_res, buf, buflen, ans, anssiz));
 }
 
+#ifndef _LIBC
 int
 res_sendsigned(const u_char *buf, int buflen, ns_tsig_key *key,
               u_char *ans, int anssiz)
@@ -221,6 +234,7 @@ res_sendsigned(const u_char *buf, int buflen, ns_tsig_key *key,
 
        return (res_nsendsigned(&_res, buf, buflen, key, ans, anssiz));
 }
+#endif
 
 void
 res_close(void) {
@@ -268,6 +282,14 @@ res_querydomain(const char *name,
                                 answer, anslen));
 }
 
+#ifdef _LIBC
+int
+res_opt(int n0, u_char *buf, int buflen, int anslen)
+{
+       return (res_nopt(&_res, n0, buf, buflen, anslen));
+}
+#endif
+
 const char *
 hostalias(const char *name) {
        static char abuf[MAXDNAME];
@@ -292,6 +314,28 @@ local_hostname_length(const char *hostname) {
 }
 #endif /*ultrix*/
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <resolv.h>.
+ */
+#undef res_init
+__weak_reference(__res_init, res_init);
+#undef p_query
+__weak_reference(__p_query, p_query);
+#undef res_mkquery
+__weak_reference(__res_mkquery, res_mkquery);
+#undef res_query
+__weak_reference(__res_query, res_query);
+#undef res_send
+__weak_reference(__res_send, res_send);
+#undef res_close
+__weak_reference(__res_close, _res_close);
+#undef res_search
+__weak_reference(__res_search, res_search);
+#undef res_querydomain
+__weak_reference(__res_querydomain, res_querydomain);
+#endif
 #endif
-
 /*! \file */
index 100133e..abe5726 100644 (file)
@@ -113,7 +113,7 @@ static const char rcsid[] = "$Id: res_debug.c,v 1.15.574.1 2008/04/03 02:12:21 m
 #include <math.h>
 #include <netdb.h>
 #include <resolv.h>
-#include <resolv_mt.h>
+#include "resolv_mt.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -1209,4 +1209,24 @@ res_nametotype(const char *buf, int *successp) {
        return (result);
 }
 
+#ifdef _LIBC
+/*
+ * Weak aliases for applications that use certain private entry points,
+ * and fail to include <resolv.h>.
+ */
+#undef fp_resstat
+__weak_reference(__fp_resstat, fp_resstat);
+#undef p_fqnname
+__weak_reference(__p_fqnname, p_fqnname);
+#undef sym_ston
+__weak_reference(__sym_ston, sym_ston);
+#undef sym_ntos
+__weak_reference(__sym_ntos, sym_ntos);
+#undef sym_ntop
+__weak_reference(__sym_ntop, sym_ntop);
+#undef dn_count_labels
+__weak_reference(__dn_count_labels, dn_count_labels);
+#undef p_secstodate
+__weak_reference(__p_secstodate, p_secstodate);
+#endif
 /*! \file */
index 933169e..ea778db 100644 (file)
@@ -39,7 +39,7 @@ static const char rcsid[] = "$Id: res_findzonecut.c,v 1.10 2005/10/11 00:10:16 m
 #include <stdlib.h>
 #include <string.h>
 
-#include <isc/list.h>
+#include "isc/list.h"
 
 #include "port_after.h"
 
@@ -150,6 +150,7 @@ static void res_dprintf(const char *, ...) ISC_FORMAT_PRINTF(1, 2);
  *     keep going.  for the NS and A queries this means we just give up.
  */
 
+#ifndef _LIBC
 int
 res_findzonecut(res_state statp, const char *dname, ns_class class, int opts,
                char *zname, size_t zsize, struct in_addr *addrs, int naddrs)
@@ -174,7 +175,7 @@ res_findzonecut(res_state statp, const char *dname, ns_class class, int opts,
        free(u);
        return (result);
 }
-
+#endif
 int
 res_findzonecut2(res_state statp, const char *dname, ns_class class, int opts,
                 char *zname, size_t zsize, union res_sockaddr_union *addrs,
index d88d10d..4f79115 100644 (file)
@@ -75,6 +75,9 @@ static const char rcsid[] = "$Id: res_init.c,v 1.23 2007/07/09 01:43:23 marka Ex
 
 #include "port_before.h"
 
+#ifdef _LIBC
+#include "namespace.h"
+#endif
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/socket.h>
@@ -90,6 +93,9 @@ static const char rcsid[] = "$Id: res_init.c,v 1.23 2007/07/09 01:43:23 marka Ex
 #include <string.h>
 #include <unistd.h>
 #include <netdb.h>
+#ifdef _LIBC
+#include "un-namespace.h"
+#endif
 
 #include "port_after.h"
 
@@ -506,7 +512,9 @@ res_setoptions(res_state statp, const char *options, const char *source)
 {
        const char *cp = options;
        int i;
+#ifndef _LIBC
        struct __res_state_ext *ext = statp->_u._ext.ext;
+#endif
 
 #ifdef DEBUG
        if (statp->options & RES_DEBUG)
@@ -591,6 +599,7 @@ res_setoptions(res_state statp, const char *options, const char *source)
                        statp->options |= RES_USE_EDNS0;
                }
 #endif
+#ifndef _LIBC
                else if (!strncmp(cp, "dname", sizeof("dname") - 1)) {
                        statp->options |= RES_USE_DNAME;
                }
@@ -620,10 +629,13 @@ res_setoptions(res_state statp, const char *options, const char *source)
                                         ~RES_NO_NIBBLE2;
                        }
                }
+#endif
                else {
                        /* XXX - print a warning here? */
                }
+#ifndef _LIBC
    skip:
+#endif
                /* skip to next run of spaces */
                while (*cp && *cp != ' ' && *cp != '\t')
                        cp++;
@@ -665,14 +677,22 @@ void
 res_nclose(res_state statp) {
        int ns;
 
-       if (statp->_vcsock >= 0) { 
+       if (statp->_vcsock >= 0) {
+#ifndef _LIBC
                (void) close(statp->_vcsock);
+#else
+               _close(statp->_vcsock);
+#endif
                statp->_vcsock = -1;
                statp->_flags &= ~(RES_F_VC | RES_F_CONN);
        }
        for (ns = 0; ns < statp->_u._ext.nscount; ns++) {
                if (statp->_u._ext.nssocks[ns] != -1) {
+#ifndef _LIBC
                        (void) close(statp->_u._ext.nssocks[ns]);
+#else
+                       _close(statp->_u._ext.nssocks[ns]);
+#endif
                        statp->_u._ext.nssocks[ns] = -1;
                }
        }
@@ -687,6 +707,7 @@ res_ndestroy(res_state statp) {
        statp->_u._ext.ext = NULL;
 }
 
+#ifndef _LIBC
 const char *
 res_get_nibblesuffix(res_state statp) {
        if (statp->_u._ext.ext)
@@ -700,6 +721,7 @@ res_get_nibblesuffix2(res_state statp) {
                return (statp->_u._ext.ext->nsuffix2);
        return ("ip6.int");
 }
+#endif
 
 void
 res_setservers(res_state statp, const union res_sockaddr_union *set, int cnt) {
@@ -797,5 +819,4 @@ res_getservers(res_state statp, union res_sockaddr_union *set, int cnt) {
        }
        return (statp->nscount);
 }
-
 /*! \file */
index d04a4b1..e9b317a 100644 (file)
@@ -45,6 +45,9 @@ static const char rcsid[] = "$Id: res_mkupdate.c,v 1.8 2005/10/14 05:44:26 marka
 #include <unistd.h>
 #include <ctype.h>
 
+#ifdef _LIBC
+#include "isc/list.h"
+#endif
 #include "port_after.h"
 
 /* Options.  Leave them on. */
@@ -59,8 +62,13 @@ static int getstr_str(char *, int, u_char **, u_char *);
 #define ShrinkBuffer(x)  if ((buflen -= x) < 0) return (-2);
 
 /* Forward. */
-
+#ifdef _LIBC
+static
+#endif
 int res_protocolnumber(const char *);
+#ifdef _LIBC
+static
+#endif
 int res_servicenumber(const char *);
 
 /*%
@@ -92,7 +100,10 @@ res_nmkupdate(res_state statp, ns_updrec *rrecp_in, u_char *buf, int buflen) {
        u_int16_t rtype, rclass;
        u_int32_t n1, rttl;
        u_char *dnptrs[20], **dpp, **lastdnptr;
-       int siglen, keylen, certlen;
+#ifndef _LIBC
+       int siglen;
+#endif
+       int keylen, certlen;
 
        /*
         * Initialize header fields.
@@ -448,6 +459,9 @@ res_nmkupdate(res_state statp, ns_updrec *rrecp_in, u_char *buf, int buflen) {
                                return (-1);
                        break;
                case ns_t_sig:
+#ifdef _LIBC
+                       return (-1);
+#else
                    {
                        int sig_type, success, dateerror;
                        u_int32_t exptime, timesigned;
@@ -538,6 +552,7 @@ res_nmkupdate(res_state statp, ns_updrec *rrecp_in, u_char *buf, int buflen) {
                        cp += siglen;
                        break;
                    }
+#endif
                case ns_t_key:
                        /* flags */
                        n = gethexnum_str(&startp, endp);
@@ -984,6 +999,7 @@ res_buildservicelist() {
        endservent();
 }
 
+#ifndef _LIBC
 void
 res_destroyservicelist() {
        struct valuelist *slp, *slp_next;
@@ -996,6 +1012,7 @@ res_destroyservicelist() {
        }
        servicelist = (struct valuelist *)0;
 }
+#endif
 
 void
 res_buildprotolist(void) {
@@ -1026,6 +1043,7 @@ res_buildprotolist(void) {
        endprotoent();
 }
 
+#ifndef _LIBC
 void
 res_destroyprotolist(void) {
        struct valuelist *plp, *plp_next;
@@ -1037,6 +1055,7 @@ res_destroyprotolist(void) {
        }
        protolist = (struct valuelist *)0;
 }
+#endif
 
 static int
 findservice(const char *s, struct valuelist **list) {
@@ -1063,6 +1082,9 @@ findservice(const char *s, struct valuelist **list) {
 /*%
  * Convert service name or (ascii) number to int.
  */
+#ifdef _LIBC
+static
+#endif
 int
 res_servicenumber(const char *p) {
        if (servicelist == (struct valuelist *)0)
@@ -1073,6 +1095,9 @@ res_servicenumber(const char *p) {
 /*%
  * Convert protocol name or (ascii) number to int.
  */
+#ifdef _LIBC
+static
+#endif
 int
 res_protocolnumber(const char *p) {
        if (protolist == (struct valuelist *)0)
@@ -1080,6 +1105,7 @@ res_protocolnumber(const char *p) {
        return (findservice(p, &protolist));
 }
 
+#ifndef _LIBC
 static struct servent *
 cgetservbyport(u_int16_t port, const char *proto) {    /*%< Host byte order. */
        struct valuelist **list = &servicelist;
@@ -1160,3 +1186,4 @@ res_servicename(u_int16_t port, const char *proto) {      /*%< Host byte order. */
        }
        return (ss->s_name);
 }
+#endif /* !_LIBC */
index f578016..9900dc6 100644 (file)
@@ -79,8 +79,13 @@ static const char rcsid[] = "$Id: res_send.c,v 1.18.10.1 2008/01/27 02:06:46 mar
  */
 
 #include "port_before.h"
+#ifndef USE_KQUEUE
 #include "fd_setsize.h"
+#endif
 
+#ifdef _LIBC
+#include "namespace.h"
+#endif
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/time.h>
@@ -100,9 +105,12 @@ static const char rcsid[] = "$Id: res_send.c,v 1.18.10.1 2008/01/27 02:06:46 mar
 #include <string.h>
 #include <unistd.h>
 
-#include <isc/eventlib.h>
+#include "isc/eventlib.h"
 
 #include "port_after.h"
+#ifdef USE_KQUEUE
+#include <sys/event.h>
+#else
 
 #ifdef USE_POLL
 #ifdef HAVE_STROPTS_H
@@ -110,6 +118,11 @@ static const char rcsid[] = "$Id: res_send.c,v 1.18.10.1 2008/01/27 02:06:46 mar
 #endif
 #include <poll.h>
 #endif /* USE_POLL */
+#endif
+
+#ifdef _LIBC
+#include "un-namespace.h"
+#endif
 
 /* Options.  Leave them on. */
 #define DEBUG
@@ -118,7 +131,7 @@ static const char rcsid[] = "$Id: res_send.c,v 1.18.10.1 2008/01/27 02:06:46 mar
 
 #define EXT(res) ((res)->_u._ext)
 
-#ifndef USE_POLL
+#if !defined(USE_POLL) && !defined(USE_KQUEUE)
 static const int highestFD = FD_SETSIZE - 1;
 #else
 static int highestFD = 0;
@@ -130,14 +143,18 @@ static int                get_salen __P((const struct sockaddr *));
 static struct sockaddr * get_nsaddr __P((res_state, size_t));
 static int             send_vc(res_state, const u_char *, int,
                                u_char *, int, int *, int);
-static int             send_dg(res_state, const u_char *, int,
+static int             send_dg(res_state,
+#ifdef USE_KQUEUE
+                               int,
+#endif
+                               const u_char *, int,
                                u_char *, int, int *, int, int,
                                int *, int *);
 static void            Aerror(const res_state, FILE *, const char *, int,
                               const struct sockaddr *, int);
 static void            Perror(const res_state, FILE *, const char *, int);
 static int             sock_eq(struct sockaddr *, struct sockaddr *);
-#if defined(NEED_PSELECT) && !defined(USE_POLL)
+#if defined(NEED_PSELECT) && !defined(USE_POLL) && !defined(USE_KQUEUE)
 static int             pselect(int, void *, void *, void *,
                                struct timespec *,
                                const sigset_t *);
@@ -294,9 +311,12 @@ res_nsend(res_state statp,
          const u_char *buf, int buflen, u_char *ans, int anssiz)
 {
        int gotsomewhere, terrno, tries, v_circuit, resplen, ns, n;
+#ifdef USE_KQUEUE
+       int kq;
+#endif
        char abuf[NI_MAXHOST];
 
-#ifdef USE_POLL
+#ifdef USE_POLL 
        highestFD = sysconf(_SC_OPEN_MAX) - 1;
 #endif
 
@@ -315,6 +335,13 @@ res_nsend(res_state statp,
        gotsomewhere = 0;
        terrno = ETIMEDOUT;
 
+#ifdef USE_KQUEUE
+       if ((kq = kqueue()) < 0) {
+               Perror(statp, stderr, "kqueue", errno);
+               return (-1);
+       }
+#endif
+
        /*
         * If the ns_addr_list in the resolver context has changed, then
         * invalidate our cached copy and the associated timing data.
@@ -338,7 +365,11 @@ res_nsend(res_state statp,
                                if (EXT(statp).nssocks[ns] == -1)
                                        continue;
                                peerlen = sizeof(peer);
+#ifndef _LIBC
                                if (getsockname(EXT(statp).nssocks[ns],
+#else
+                               if (_getsockname(EXT(statp).nssocks[ns],
+#endif
                                    (struct sockaddr *)&peer, &peerlen) < 0) {
                                        needclose++;
                                        break;
@@ -430,6 +461,9 @@ res_nsend(res_state statp,
                                        res_nclose(statp);
                                        goto next_ns;
                                case res_done:
+#ifdef USE_KQUEUE
+                                       _close(kq);
+#endif
                                        return (resplen);
                                case res_modified:
                                        /* give the hook another try */
@@ -463,8 +497,12 @@ res_nsend(res_state statp,
                        resplen = n;
                } else {
                        /* Use datagrams. */
-                       n = send_dg(statp, buf, buflen, ans, anssiz, &terrno,
-                                   ns, tries, &v_circuit, &gotsomewhere);
+                       n = send_dg(statp,
+#ifdef USE_KQUEUE
+                               kq,
+#endif
+                               buf, buflen, ans, anssiz, &terrno,
+                               ns, tries, &v_circuit, &gotsomewhere);
                        if (n < 0)
                                goto fail;
                        if (n == 0)
@@ -522,11 +560,17 @@ res_nsend(res_state statp,
                        } while (!done);
 
                }
+#ifdef USE_KQUEUE
+               _close(kq);
+#endif
                return (resplen);
  next_ns: ;
           } /*foreach ns*/
        } /*foreach retry*/
        res_nclose(statp);
+#ifdef USE_KQUEUE
+       _close(kq);
+#endif
        if (!v_circuit) {
                if (!gotsomewhere)
                        errno = ECONNREFUSED;   /*%< no nameservers found */
@@ -616,8 +660,11 @@ send_vc(res_state statp,
        if (statp->_vcsock >= 0 && (statp->_flags & RES_F_VC) != 0) {
                struct sockaddr_storage peer;
                ISC_SOCKLEN_T size = sizeof peer;
-
+#ifndef _LIBC
                if (getpeername(statp->_vcsock,
+#else
+               if (_getpeername(statp->_vcsock,
+#endif
                                (struct sockaddr *)&peer, &size) < 0 ||
                    !sock_eq((struct sockaddr *)&peer, nsap)) {
                        res_nclose(statp);
@@ -628,12 +675,17 @@ send_vc(res_state statp,
        if (statp->_vcsock < 0 || (statp->_flags & RES_F_VC) == 0) {
                if (statp->_vcsock >= 0)
                        res_nclose(statp);
-
+#ifndef _LIBC
                statp->_vcsock = socket(nsap->sa_family, SOCK_STREAM, 0);
+#else
+               statp->_vcsock = _socket(nsap->sa_family, SOCK_STREAM, 0);
+#endif
+#if !defined(USE_POLL) && !defined(USE_KQUEUE)
                if (statp->_vcsock > highestFD) {
                        res_nclose(statp);
                        errno = ENOTSOCK;
                }
+#endif
                if (statp->_vcsock < 0) {
                        switch (errno) {
                        case EPROTONOSUPPORT:
@@ -661,7 +713,11 @@ send_vc(res_state statp,
                                 sizeof(on));
 #endif
                errno = 0;
+#ifndef _LIBC
                if (connect(statp->_vcsock, nsap, nsaplen) < 0) {
+#else
+               if (_connect(statp->_vcsock, nsap, nsaplen) < 0) {
+#endif
                        *terrno = errno;
                        Aerror(statp, stderr, "connect/vc", errno, nsap,
                            nsaplen);
@@ -678,7 +734,11 @@ send_vc(res_state statp,
        iov[0] = evConsIovec(&len, INT16SZ);
        DE_CONST(buf, tmp);
        iov[1] = evConsIovec(tmp, buflen);
+#ifndef _LIBC
        if (writev(statp->_vcsock, iov, 2) != (INT16SZ + buflen)) {
+#else
+       if (_writev(statp->_vcsock, iov, 2) != (INT16SZ + buflen)) {
+#endif
                *terrno = errno;
                Perror(statp, stderr, "write failed", errno);
                res_nclose(statp);
@@ -690,7 +750,11 @@ send_vc(res_state statp,
  read_len:
        cp = ans;
        len = INT16SZ;
+#ifndef _LIBC
        while ((n = read(statp->_vcsock, (char *)cp, (int)len)) > 0) {
+#else
+       while ((n = _read(statp->_vcsock, (char *)cp, (int)len)) > 0) {
+#endif
                cp += n;
                if ((len -= n) == 0)
                        break;
@@ -736,7 +800,11 @@ send_vc(res_state statp,
                return (0);
        }
        cp = ans;
+#ifndef _LIBC
        while (len != 0 && (n = read(statp->_vcsock, (char *)cp, (int)len)) > 0){
+#else
+       while (len != 0 && (n = _read(statp->_vcsock, (char *)cp, (int)len)) > 0){
+#endif
                cp += n;
                len -= n;
        }
@@ -755,7 +823,11 @@ send_vc(res_state statp,
                while (len != 0) {
                        char junk[PACKETSZ];
 
+#ifndef _LIBC
                        n = read(statp->_vcsock, junk,
+#else
+                       n = _read(statp->_vcsock, junk,
+#endif
                                 (len > sizeof junk) ? sizeof junk : len);
                        if (n > 0)
                                len -= n;
@@ -786,7 +858,11 @@ send_vc(res_state statp,
 }
 
 static int
-send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans,
+send_dg(res_state statp,
+#ifdef USE_KQUEUE
+       int kq,
+#endif
+       const u_char *buf, int buflen, u_char *ans,
        int anssiz, int *terrno, int ns, int tries, int *v_circuit,
        int *gotsomewhere)
 {
@@ -798,21 +874,31 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans,
        struct sockaddr_storage from;
        ISC_SOCKLEN_T fromlen;
        int resplen, seconds, n, s;
+#ifdef USE_KQUEUE
+       struct kevent kv;
+#else
 #ifdef USE_POLL
        int     polltimeout;
        struct pollfd   pollfd;
 #else
        fd_set dsmask;
 #endif
+#endif
 
        nsap = get_nsaddr(statp, ns);
        nsaplen = get_salen(nsap);
        if (EXT(statp).nssocks[ns] == -1) {
+#ifndef _LIBC
                EXT(statp).nssocks[ns] = socket(nsap->sa_family, SOCK_DGRAM, 0);
+#else
+               EXT(statp).nssocks[ns] = _socket(nsap->sa_family, SOCK_DGRAM, 0);
+#endif
+#if !defined(USE_POLL) && !defined(USE_KQUEUE)
                if (EXT(statp).nssocks[ns] > highestFD) {
                        res_nclose(statp);
                        errno = ENOTSOCK;
                }
+#endif
                if (EXT(statp).nssocks[ns] < 0) {
                        switch (errno) {
                        case EPROTONOSUPPORT:
@@ -839,8 +925,21 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans,
                 * socket operation, and select returns if the
                 * error message is received.  We can thus detect
                 * the absence of a nameserver without timing out.
-                */
-               if (connect(EXT(statp).nssocks[ns], nsap, nsaplen) < 0) {
+                *
+                *
+                 * When the option "insecure1" is specified, we'd
+                 * rather expect to see responses from an "unknown"
+                 * address.  In order to let the kernel accept such
+                 * responses, do not connect the socket here.
+                 * XXX: or do we need an explicit option to disable
+                 * connecting?
+                 */
+               if (!(statp->options & RES_INSECURE1) &&
+#ifndef _LIBC
+                       connect(EXT(statp).nssocks[ns], nsap, nsaplen) < 0) {
+#else
+                       _connect(EXT(statp).nssocks[ns], nsap, nsaplen) < 0) {
+#endif
                        Aerror(statp, stderr, "connect(dg)", errno, nsap,
                            nsaplen);
                        res_nclose(statp);
@@ -852,13 +951,28 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans,
        }
        s = EXT(statp).nssocks[ns];
 #ifndef CANNOT_CONNECT_DGRAM
-       if (send(s, (const char*)buf, buflen, 0) != buflen) {
+               if (statp->options & RES_INSECURE1) {
+#ifndef _LIBC
+               if (sendto(s,
+#else
+               if (_sendto(s,
+#endif
+               (const char*)buf, buflen, 0, nsap, nsaplen) != buflen) {
+                       Aerror(statp, stderr, "sendto", errno, nsap, nsaplen);
+                       res_nclose(statp);
+                       return (0);
+               }
+       } else if (send(s, (const char*)buf, buflen, 0) != buflen) {
                Perror(statp, stderr, "send", errno);
                res_nclose(statp);
                return (0);
        }
 #else /* !CANNOT_CONNECT_DGRAM */
+#ifndef _LIBC
        if (sendto(s, (const char*)buf, buflen, 0, nsap, nsaplen) != buflen)
+#else
+       if (_sendto(s, (const char*)buf, buflen, 0, nsap, nsaplen) != buflen)
+#endif
        {
                Aerror(statp, stderr, "sendto", errno, nsap, nsaplen);
                res_nclose(statp);
@@ -882,13 +996,18 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans,
        now = evNowTime();
  nonow:
 #ifndef USE_POLL
-       FD_ZERO(&dsmask);
-       FD_SET(s, &dsmask);
        if (evCmpTime(finish, now) > 0)
                timeout = evSubTime(finish, now);
        else
                timeout = evConsTime(0, 0);
+#ifdef USE_KQUEUE
+       EV_SET(&kv, s, EVFILT_READ, EV_ADD | EV_ONESHOT, 0, 0, 0);
+       n = _kevent(kq, &kv, 1, &kv, 1, &timeout);
+#else
+       FD_ZERO(&dsmask);
+       FD_SET(s, &dsmask);
        n = pselect(s + 1, &dsmask, NULL, NULL, &timeout, NULL);
+#endif
 #else
        timeout = evSubTime(finish, now);
        if (timeout.tv_sec < 0)
@@ -908,17 +1027,29 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans,
        if (n < 0) {
                if (errno == EINTR)
                        goto wait;
+#ifdef USE_KQUEUE
+               Perror(statp, stderr, "kevent", errno);
+#else
 #ifndef USE_POLL
                Perror(statp, stderr, "select", errno);
 #else
                Perror(statp, stderr, "poll", errno);
 #endif /* USE_POLL */
+#endif
                res_nclose(statp);
                return (0);
        }
+#ifdef USE_KQUEUE
+       if (kv.ident != s)
+               goto wait;
+#endif
        errno = 0;
        fromlen = sizeof(from);
+#ifndef _LIBC
        resplen = recvfrom(s, (char*)ans, anssiz,0,
+#else
+       resplen = _recvfrom(s, (char*)ans, anssiz,0,
+#endif
                           (struct sockaddr *)&from, &fromlen);
        if (resplen <= 0) {
                Perror(statp, stderr, "recvfrom", errno);
@@ -1081,7 +1212,7 @@ sock_eq(struct sockaddr *a, struct sockaddr *b) {
        }
 }
 
-#if defined(NEED_PSELECT) && !defined(USE_POLL)
+#if defined(NEED_PSELECT) && !defined(USE_POLL) && !defined(USE_KQUEUE)
 /* XXX needs to move to the porting library. */
 static int
 pselect(int nfds, void *rfds, void *wfds, void *efds,
index 5b2ecb1..63259e1 100644 (file)
@@ -44,7 +44,7 @@ static const char rcsid[] = "$Id: res_update.c,v 1.13 2005/04/27 04:56:43 sra Ex
 #include <stdlib.h>
 #include <string.h>
 
-#include <isc/list.h>
+#include "isc/list.h"
 #include <resolv.h>
 
 #include "port_after.h"
@@ -168,8 +168,16 @@ res_nupdate(res_state statp, ns_updrec *rrecp_in, ns_tsig_key *key) {
 
                /* Send the update and remember the result. */
                if (key != NULL)
+#ifdef _LIBC
+               {
+                       DPRINTF(("TSIG is not supported\n"));
+                       RES_SET_H_ERRNO(statp, NO_RECOVERY);
+                       goto done;
+               }
+#else
                        n = res_nsendsigned(statp, packet, n, key,
                                            answer, sizeof answer);
+#endif
                else
                        n = res_nsend(statp, packet, n, answer, sizeof answer);
                if (n < 0) {
index 32fa836..72322bb 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: db.h,v 1.89.128.5 2009/01/19 00:01:11 marka Exp $ */
+/* $Id: db.h,v 1.89.128.5.2.1 2009/12/31 21:45:53 each Exp $ */
 
 #ifndef DNS_DB_H
 #define DNS_DB_H 1
@@ -187,13 +187,14 @@ struct dns_db {
 /*%
  * Options that can be specified for dns_db_find().
  */
-#define DNS_DBFIND_GLUEOK              0x01
-#define DNS_DBFIND_VALIDATEGLUE                0x02
-#define DNS_DBFIND_NOWILD              0x04
-#define DNS_DBFIND_PENDINGOK           0x08
-#define DNS_DBFIND_NOEXACT             0x10
-#define DNS_DBFIND_FORCENSEC           0x20
-#define DNS_DBFIND_COVERINGNSEC                0x40
+#define DNS_DBFIND_GLUEOK              0x0001
+#define DNS_DBFIND_VALIDATEGLUE                0x0002
+#define DNS_DBFIND_NOWILD              0x0004
+#define DNS_DBFIND_PENDINGOK           0x0008
+#define DNS_DBFIND_NOEXACT             0x0010
+#define DNS_DBFIND_FORCENSEC           0x0020
+#define DNS_DBFIND_COVERINGNSEC                0x0040
+#define DNS_DBFIND_ADDITIONALOK                0x0100
 /*@}*/
 
 /*@{*/
index 4d873e4..d2c530c 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: types.h,v 1.126.62.6.2.1 2009/11/18 23:41:18 marka Exp $ */
+/* $Id: types.h,v 1.126.62.6.2.2 2009/12/31 21:02:45 each Exp $ */
 
 #ifndef DNS_TYPES_H
 #define DNS_TYPES_H 1
@@ -296,6 +296,8 @@ enum {
 
 #define DNS_TRUST_PENDING(x)           ((x) == dns_trust_pending_answer || \
                                         (x) == dns_trust_pending_additional)
+#define DNS_TRUST_ADDITIONAL(x)                ((x) == dns_trust_additional || \
+                                        (x) == dns_trust_pending_additional)
 #define DNS_TRUST_GLUE(x)              ((x) == dns_trust_glue)
 
 
index 2932886..91ced3e 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: rbtdb.c,v 1.248.12.18.2.1 2009/11/18 23:41:18 marka Exp $ */
+/* $Id: rbtdb.c,v 1.248.12.18.2.2 2009/12/31 21:45:53 each Exp $ */
 
 /*! \file */
 
@@ -4106,6 +4106,8 @@ cache_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
         * If we didn't find what we were looking for...
         */
        if (found == NULL ||
+           (DNS_TRUST_ADDITIONAL(found->trust) &&
+            ((options & DNS_DBFIND_ADDITIONALOK) == 0)) ||
            (found->trust == dns_trust_glue &&
             ((options & DNS_DBFIND_GLUEOK) == 0)) ||
            (DNS_TRUST_PENDING(found->trust) &&
index 22142f0..82fbafb 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: resolver.c,v 1.355.12.44.2.1 2009/11/18 23:41:18 marka Exp $ */
+/* $Id: resolver.c,v 1.355.12.44.2.2 2010/01/07 17:19:22 each Exp $ */
 
 /*! \file */
 
@@ -4239,11 +4239,19 @@ cache_name(fetchctx_t *fctx, dns_name_t *name, dns_adbaddrinfo_t *addrinfo,
                        rdataset->ttl = res->view->maxcachettl;
 
                /*
-                * If this rrset is in a secure domain, do DNSSEC validation
-                * for it, unless it is glue.
+                * If this RRset is in a secure domain, is in bailiwick,
+                * and is not glue, attempt DNSSEC validation.  (We do not
+                * attempt to validate glue or out-of-bailiwick data--even
+                * though there might be some performance benefit to doing
+                * so--because it makes it simpler and safer to ensure that
+                * records from a secure domain are only cached if validated
+                * within the context of a query to the domain that owns
+                * them.)
                 */
-               if (secure_domain && rdataset->trust != dns_trust_glue) {
+               if (secure_domain && rdataset->trust != dns_trust_glue &&
+                   !EXTERNAL(rdataset)) {
                        dns_trust_t trust;
+
                        /*
                         * RRSIGs are validated as part of validating the
                         * type they cover.
@@ -4280,22 +4288,6 @@ cache_name(fetchctx_t *fctx, dns_name_t *name, dns_adbaddrinfo_t *addrinfo,
                        }
 
                        /*
-                        * Reject out of bailiwick additional records
-                        * without RRSIGs as they can't possibly validate
-                        * as "secure" and as we will never never want to
-                        * store these as "answers" after validation.
-                        */
-                       if (rdataset->trust == dns_trust_additional &&
-                           sigrdataset == NULL && EXTERNAL(rdataset))
-                               continue;
-                               
-                       /*
-                         * XXXMPA: If we store as "answer" after validating
-                         * then we need to do bailiwick processing and
-                         * also need to track whether RRsets are in or
-                         * out of bailiwick.  This will require a another 
-                         * pending trust level.
-                         *
                         * Cache this rdataset/sigrdataset pair as
                         * pending data.  Track whether it was additional
                         * or not.
@@ -5404,9 +5396,7 @@ answer_response(fetchctx_t *fctx) {
                                                /*
                                                 * This data is outside of
                                                 * our query domain, and
-                                                * may only be cached if it
-                                                * comes from a secure zone
-                                                * and validates.
+                                                * may not be cached.
                                                 */
                                                rdataset->attributes |=
                                                    DNS_RDATASETATTR_EXTERNAL;
index a0b66be..937da66 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: validator.c,v 1.155.52.14.2.1 2009/11/18 23:41:18 marka Exp $ */
+/* $Id: validator.c,v 1.155.52.14.2.2 2009/12/31 21:02:44 each Exp $ */
 
 #include <config.h>
 
@@ -2597,20 +2597,20 @@ proveunsecure(dns_validator_t *val, isc_boolean_t have_ds, isc_boolean_t resume)
        if (val->havedlvsep)
                dns_name_copy(dns_fixedname_name(&val->dlvsep), secroot, NULL);
        else {
+               unsigned int labels;
                dns_name_copy(val->event->name, secroot, NULL);
                /*
                 * If this is a response to a DS query, we need to look in
                 * the parent zone for the trust anchor.
                 */
-               if (val->event->type == dns_rdatatype_ds &&
-                   dns_name_countlabels(secroot) > 1U)
-                       dns_name_split(secroot, 1, NULL, secroot);
+
+               labels = dns_name_countlabels(secroot);
+               if (val->event->type == dns_rdatatype_ds && labels > 1U)
+                       dns_name_getlabelsequence(secroot, 1, labels - 1,
+                                                 secroot);
                result = dns_keytable_finddeepestmatch(val->keytable,
                                                       secroot, secroot);
-
                if (result == ISC_R_NOTFOUND) {
-                       validator_log(val, ISC_LOG_DEBUG(3),
-                                     "not beneath secure root");
                        if (val->mustbesecure) {
                                validator_log(val, ISC_LOG_WARNING,
                                              "must be secure failure");
index ddad861..a0dbd4d 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres.html,v 1.23.214.1 2009/07/11 01:43:30 tbox Exp $ -->
+<!-- $Id: lwres.html,v 1.23.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres &#8212; introduction to the lightweight resolver library</p>
@@ -32,7 +32,7 @@
 <div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;lwres/lwres.h&gt;</pre></div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543348"></a><h2>DESCRIPTION</h2>
+<a name="id2543346"></a><h2>DESCRIPTION</h2>
 <p>
       The BIND 9 lightweight resolver library is a simple, name service
       independent stub resolver library.  It provides hostname-to-address
@@ -47,7 +47,7 @@
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543361"></a><h2>OVERVIEW</h2>
+<a name="id2543358"></a><h2>OVERVIEW</h2>
 <p>
       The lwresd library implements multiple name service APIs.
       The standard
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543425"></a><h2>CLIENT-SIDE LOW-LEVEL API CALL FLOW</h2>
+<a name="id2543422"></a><h2>CLIENT-SIDE LOW-LEVEL API CALL FLOW</h2>
 <p>
       When a client program wishes to make an lwres request using the
       native low-level API, it typically performs the following
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543573"></a><h2>SERVER-SIDE LOW-LEVEL API CALL FLOW</h2>
+<a name="id2543571"></a><h2>SERVER-SIDE LOW-LEVEL API CALL FLOW</h2>
 <p>
       When implementing the server side of the lightweight resolver
       protocol using the lwres library, a sequence of actions like the
 <p></p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543656"></a><h2>SEE ALSO</h2>
+<a name="id2543654"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres_gethostent</span>(3)</span>,
 
       <span class="citerefentry"><span class="refentrytitle">lwres_getipnode</span>(3)</span>,
index 8cf21d7..e3ba368 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_buffer.html,v 1.21.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_buffer.html,v 1.21.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_buffer_init, lwres_buffer_invalidate, lwres_buffer_add, lwres_buffer_subtract, lwres_buffer_clear, lwres_buffer_first, lwres_buffer_forward, lwres_buffer_back, lwres_buffer_getuint8, lwres_buffer_putuint8, lwres_buffer_getuint16, lwres_buffer_putuint16, lwres_buffer_getuint32, lwres_buffer_putuint32, lwres_buffer_putmem, lwres_buffer_getmem &#8212; lightweight resolver buffer management</p>
@@ -262,7 +262,7 @@ void
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543892"></a><h2>DESCRIPTION</h2>
+<a name="id2543890"></a><h2>DESCRIPTION</h2>
 <p>
       These functions provide bounds checked access to a region of memory
       where data is being read or written.
index 26c2ead..7227e52 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_config.html,v 1.22.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_config.html,v 1.22.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_conf_init, lwres_conf_clear, lwres_conf_parse, lwres_conf_print, lwres_conf_get &#8212; lightweight resolver configuration</p>
@@ -90,7 +90,7 @@ lwres_conf_t *
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543441"></a><h2>DESCRIPTION</h2>
+<a name="id2543438"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_conf_init()</code>
       creates an empty
       <span class="type">lwres_conf_t</span>
@@ -123,7 +123,7 @@ lwres_conf_t *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543508"></a><h2>RETURN VALUES</h2>
+<a name="id2543506"></a><h2>RETURN VALUES</h2>
 <p><code class="function">lwres_conf_parse()</code>
       returns <span class="errorcode">LWRES_R_SUCCESS</span>
       if it successfully read and parsed
@@ -142,13 +142,13 @@ lwres_conf_t *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543545"></a><h2>SEE ALSO</h2>
+<a name="id2543543"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">stdio</span>(3)</span>,
       <span class="citerefentry"><span class="refentrytitle">resolver</span>(5)</span>.
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543571"></a><h2>FILES</h2>
+<a name="id2543569"></a><h2>FILES</h2>
 <p><code class="filename">/etc/resolv.conf</code>
     </p>
 </div>
index 0797e81..56de874 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_context.html,v 1.23.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_context.html,v 1.23.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_context_create, lwres_context_destroy, lwres_context_nextserial, lwres_context_initserial, lwres_context_freemem, lwres_context_allocmem, lwres_context_sendrecv &#8212; lightweight resolver context management</p>
@@ -172,7 +172,7 @@ void *
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543531"></a><h2>DESCRIPTION</h2>
+<a name="id2543529"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_context_create()</code>
       creates a <span class="type">lwres_context_t</span> structure for use in
       lightweight resolver operations.  It holds a socket and other
@@ -258,7 +258,7 @@ void *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543719"></a><h2>RETURN VALUES</h2>
+<a name="id2543717"></a><h2>RETURN VALUES</h2>
 <p><code class="function">lwres_context_create()</code>
       returns <span class="errorcode">LWRES_R_NOMEMORY</span> if memory for
       the <span class="type">struct lwres_context</span> could not be allocated,
@@ -283,7 +283,7 @@ void *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543769"></a><h2>SEE ALSO</h2>
+<a name="id2543767"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres_conf_init</span>(3)</span>,
 
       <span class="citerefentry"><span class="refentrytitle">malloc</span>(3)</span>,
index b12e6de..e51230c 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_gabn.html,v 1.24.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_gabn.html,v 1.24.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_gabnrequest_render, lwres_gabnresponse_render, lwres_gabnrequest_parse, lwres_gabnresponse_parse, lwres_gabnresponse_free, lwres_gabnrequest_free &#8212; lightweight resolver getaddrbyname message handling</p>
@@ -178,7 +178,7 @@ void
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543522"></a><h2>DESCRIPTION</h2>
+<a name="id2543520"></a><h2>DESCRIPTION</h2>
 <p>
       These are low-level routines for creating and parsing
       lightweight resolver name-to-address lookup request and
@@ -278,7 +278,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543667"></a><h2>RETURN VALUES</h2>
+<a name="id2543665"></a><h2>RETURN VALUES</h2>
 <p>
       The getaddrbyname opcode functions
       <code class="function">lwres_gabnrequest_render()</code>,
@@ -316,7 +316,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543733"></a><h2>SEE ALSO</h2>
+<a name="id2543731"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span>
     </p>
 </div>
index 2370962..530208c 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_gai_strerror.html,v 1.24.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_gai_strerror.html,v 1.24.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_gai_strerror &#8212; print suitable error string</p>
@@ -42,7 +42,7 @@ char *
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543361"></a><h2>DESCRIPTION</h2>
+<a name="id2543358"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_gai_strerror()</code>
       returns an error message corresponding to an error code returned by
       <code class="function">getaddrinfo()</code>.
@@ -110,7 +110,7 @@ char *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543576"></a><h2>SEE ALSO</h2>
+<a name="id2543574"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">strerror</span>(3)</span>,
 
       <span class="citerefentry"><span class="refentrytitle">lwres_getaddrinfo</span>(3)</span>,
index 652bc6b..cc57aa7 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_getaddrinfo.html,v 1.27.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_getaddrinfo.html,v 1.27.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_getaddrinfo, lwres_freeaddrinfo &#8212; socket address structure to host and service name</p>
@@ -89,7 +89,7 @@ struct  addrinfo {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543412"></a><h2>DESCRIPTION</h2>
+<a name="id2543410"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_getaddrinfo()</code>
       is used to get a list of IP addresses and port numbers for host
       <em class="parameter"><code>hostname</code></em> and service
@@ -283,7 +283,7 @@ struct  addrinfo {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543789"></a><h2>RETURN VALUES</h2>
+<a name="id2543787"></a><h2>RETURN VALUES</h2>
 <p><code class="function">lwres_getaddrinfo()</code>
       returns zero on success or one of the error codes listed in
       <span class="citerefentry"><span class="refentrytitle">gai_strerror</span>(3)</span>
@@ -294,7 +294,7 @@ struct  addrinfo {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543827"></a><h2>SEE ALSO</h2>
+<a name="id2542118"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>,
 
       <span class="citerefentry"><span class="refentrytitle">lwres_getaddrinfo</span>(3)</span>,
index ff600f4..6997221 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_gethostent.html,v 1.24.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_gethostent.html,v 1.24.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_gethostbyname, lwres_gethostbyname2, lwres_gethostbyaddr, lwres_gethostent, lwres_sethostent, lwres_endhostent, lwres_gethostbyname_r, lwres_gethostbyaddr_r, lwres_gethostent_r, lwres_sethostent_r, lwres_endhostent_r &#8212; lightweight resolver get network host entry</p>
@@ -228,7 +228,7 @@ void
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543608"></a><h2>DESCRIPTION</h2>
+<a name="id2543606"></a><h2>DESCRIPTION</h2>
 <p>
       These functions provide hostname-to-address and
       address-to-hostname lookups by means of the lightweight resolver.
@@ -366,7 +366,7 @@ struct  hostent {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543959"></a><h2>RETURN VALUES</h2>
+<a name="id2543957"></a><h2>RETURN VALUES</h2>
 <p>
       The functions
       <code class="function">lwres_gethostbyname()</code>,
@@ -430,7 +430,7 @@ struct  hostent {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2544193"></a><h2>SEE ALSO</h2>
+<a name="id2544190"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">gethostent</span>(3)</span>,
 
       <span class="citerefentry"><span class="refentrytitle">lwres_getipnode</span>(3)</span>,
@@ -439,7 +439,7 @@ struct  hostent {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2544227"></a><h2>BUGS</h2>
+<a name="id2544225"></a><h2>BUGS</h2>
 <p><code class="function">lwres_gethostbyname()</code>,
       <code class="function">lwres_gethostbyname2()</code>,
       <code class="function">lwres_gethostbyaddr()</code>
index b042795..1a4bae1 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_getipnode.html,v 1.25.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_getipnode.html,v 1.25.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_getipnodebyname, lwres_getipnodebyaddr, lwres_freehostent &#8212; lightweight resolver nodename / address translation API</p>
@@ -98,7 +98,7 @@ void
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543431"></a><h2>DESCRIPTION</h2>
+<a name="id2543429"></a><h2>DESCRIPTION</h2>
 <p>
       These functions perform thread safe, protocol independent
       nodename-to-address and address-to-nodename
@@ -217,7 +217,7 @@ struct  hostent {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543689"></a><h2>RETURN VALUES</h2>
+<a name="id2543687"></a><h2>RETURN VALUES</h2>
 <p>
       If an error occurs,
       <code class="function">lwres_getipnodebyname()</code>
@@ -261,7 +261,7 @@ struct  hostent {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543786"></a><h2>SEE ALSO</h2>
+<a name="id2543784"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">RFC2553</span></span>,
 
       <span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>,
index a564721..a35f070 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_getnameinfo.html,v 1.23.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_getnameinfo.html,v 1.23.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_getnameinfo &#8212; lightweight resolver socket address structure to hostname and
@@ -82,7 +82,7 @@ int
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543393"></a><h2>DESCRIPTION</h2>
+<a name="id2543390"></a><h2>DESCRIPTION</h2>
 <p>
        This function is equivalent to the
       <span class="citerefentry"><span class="refentrytitle">getnameinfo</span>(3)</span> function defined in RFC2133.
@@ -149,13 +149,13 @@ int
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543534"></a><h2>RETURN VALUES</h2>
+<a name="id2543532"></a><h2>RETURN VALUES</h2>
 <p><code class="function">lwres_getnameinfo()</code>
       returns 0 on success or a non-zero error code if an error occurs.
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543546"></a><h2>SEE ALSO</h2>
+<a name="id2543544"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">RFC2133</span></span>,
       <span class="citerefentry"><span class="refentrytitle">getservbyport</span>(3)</span>,
       <span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>,
@@ -165,7 +165,7 @@ int
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543604"></a><h2>BUGS</h2>
+<a name="id2543602"></a><h2>BUGS</h2>
 <p>
       RFC2133 fails to define what the nonzero return values of
       <span class="citerefentry"><span class="refentrytitle">getnameinfo</span>(3)</span>
index 21f6634..80ef4ce 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_getrrsetbyname.html,v 1.23.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_getrrsetbyname.html,v 1.23.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_getrrsetbyname, lwres_freerrset &#8212; retrieve DNS records</p>
@@ -102,7 +102,7 @@ struct  rrsetinfo {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543414"></a><h2>DESCRIPTION</h2>
+<a name="id2543412"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_getrrsetbyname()</code>
       gets a set of resource records associated with a
       <em class="parameter"><code>hostname</code></em>, <em class="parameter"><code>class</code></em>,
@@ -150,7 +150,7 @@ struct  rrsetinfo {
 <p></p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543526"></a><h2>RETURN VALUES</h2>
+<a name="id2543524"></a><h2>RETURN VALUES</h2>
 <p><code class="function">lwres_getrrsetbyname()</code>
       returns zero on success, and one of the following error codes if
       an error occurred:
@@ -184,7 +184,7 @@ struct  rrsetinfo {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543626"></a><h2>SEE ALSO</h2>
+<a name="id2543624"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>.
     </p>
 </div>
index 45e5ac3..ca72249 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_gnba.html,v 1.24.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_gnba.html,v 1.24.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_gnbarequest_render, lwres_gnbaresponse_render, lwres_gnbarequest_parse, lwres_gnbaresponse_parse, lwres_gnbaresponse_free, lwres_gnbarequest_free &#8212; lightweight resolver getnamebyaddress message handling</p>
@@ -183,7 +183,7 @@ void
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543525"></a><h2>DESCRIPTION</h2>
+<a name="id2543523"></a><h2>DESCRIPTION</h2>
 <p>
       These are low-level routines for creating and parsing
       lightweight resolver address-to-name lookup request and
@@ -270,7 +270,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543665"></a><h2>RETURN VALUES</h2>
+<a name="id2543662"></a><h2>RETURN VALUES</h2>
 <p>
       The getnamebyaddr opcode functions
       <code class="function">lwres_gnbarequest_render()</code>,
@@ -308,7 +308,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543731"></a><h2>SEE ALSO</h2>
+<a name="id2543729"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span>.
     </p>
 </div>
index 54ac6cc..17c5cb5 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_hstrerror.html,v 1.23.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_hstrerror.html,v 1.23.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_herror, lwres_hstrerror &#8212; lightweight resolver error message generation</p>
@@ -50,7 +50,7 @@ const char *
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543379"></a><h2>DESCRIPTION</h2>
+<a name="id2543377"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_herror()</code>
       prints the string <em class="parameter"><code>s</code></em> on
       <span class="type">stderr</span> followed by the string generated by
@@ -84,7 +84,7 @@ const char *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543497"></a><h2>RETURN VALUES</h2>
+<a name="id2543495"></a><h2>RETURN VALUES</h2>
 <p>
       The string <span class="errorname">Unknown resolver error</span> is returned by
       <code class="function">lwres_hstrerror()</code>
@@ -94,7 +94,7 @@ const char *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543517"></a><h2>SEE ALSO</h2>
+<a name="id2543515"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">herror</span>(3)</span>,
 
       <span class="citerefentry"><span class="refentrytitle">lwres_hstrerror</span>(3)</span>.
index 307093b..53e70f4 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_inetntop.html,v 1.23.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_inetntop.html,v 1.23.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_net_ntop &#8212; lightweight resolver IP address presentation</p>
@@ -62,7 +62,7 @@ const char *
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543379"></a><h2>DESCRIPTION</h2>
+<a name="id2543377"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_net_ntop()</code>
       converts an IP address of protocol family
       <em class="parameter"><code>af</code></em> &#8212; IPv4 or IPv6 &#8212; at
@@ -80,7 +80,7 @@ const char *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543411"></a><h2>RETURN VALUES</h2>
+<a name="id2543409"></a><h2>RETURN VALUES</h2>
 <p>
       If successful, the function returns <em class="parameter"><code>dst</code></em>:
       a pointer to a string containing the presentation format of the
@@ -93,7 +93,7 @@ const char *
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543444"></a><h2>SEE ALSO</h2>
+<a name="id2543442"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">RFC1884</span></span>,
       <span class="citerefentry"><span class="refentrytitle">inet_ntop</span>(3)</span>,
       <span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span>.
index 53ccdf8..a658a1a 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_noop.html,v 1.25.214.1 2009/07/11 01:43:34 tbox Exp $ -->
+<!-- $Id: lwres_noop.html,v 1.25.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_nooprequest_render, lwres_noopresponse_render, lwres_nooprequest_parse, lwres_noopresponse_parse, lwres_noopresponse_free, lwres_nooprequest_free &#8212; lightweight resolver no-op message handling</p>
@@ -179,7 +179,7 @@ void
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543522"></a><h2>DESCRIPTION</h2>
+<a name="id2543520"></a><h2>DESCRIPTION</h2>
 <p>
       These are low-level routines for creating and parsing
       lightweight resolver no-op request and response messages.
@@ -270,7 +270,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543672"></a><h2>RETURN VALUES</h2>
+<a name="id2543670"></a><h2>RETURN VALUES</h2>
 <p>
       The no-op opcode functions
       <code class="function">lwres_nooprequest_render()</code>,
@@ -309,7 +309,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543738"></a><h2>SEE ALSO</h2>
+<a name="id2543736"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span>
     </p>
 </div>
index ed5ff81..a3ce334 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_packet.html,v 1.26.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_packet.html,v 1.26.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_lwpacket_renderheader, lwres_lwpacket_parseheader &#8212; lightweight resolver packet handling functions</p>
@@ -66,7 +66,7 @@ lwres_result_t
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543389"></a><h2>DESCRIPTION</h2>
+<a name="id2543387"></a><h2>DESCRIPTION</h2>
 <p>
       These functions rely on a
       <span class="type">struct lwres_lwpacket</span>
@@ -219,7 +219,7 @@ struct lwres_lwpacket {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543706"></a><h2>RETURN VALUES</h2>
+<a name="id2543704"></a><h2>RETURN VALUES</h2>
 <p>
       Successful calls to
       <code class="function">lwres_lwpacket_renderheader()</code> and
index df58af7..dbc2301 100644 (file)
@@ -14,7 +14,7 @@
  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  - PERFORMANCE OF THIS SOFTWARE.
 -->
-<!-- $Id: lwres_resutil.html,v 1.25.214.1 2009/07/11 01:43:31 tbox Exp $ -->
+<!-- $Id: lwres_resutil.html,v 1.25.214.1.2.1 2009/12/31 23:47:14 tbox Exp $ -->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -22,7 +22,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
-<a name="id2476275"></a><div class="titlepage"></div>
+<a name="id2476267"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2>Name</h2>
 <p>lwres_string_parse, lwres_addr_parse, lwres_getaddrsbyname, lwres_getnamebyaddr &#8212; lightweight resolver utility functions</p>
@@ -134,7 +134,7 @@ lwres_result_t
 </div>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543466"></a><h2>DESCRIPTION</h2>
+<a name="id2543464"></a><h2>DESCRIPTION</h2>
 <p><code class="function">lwres_string_parse()</code>
       retrieves a DNS-encoded string starting the current pointer of
       lightweight resolver buffer <em class="parameter"><code>b</code></em>: i.e.
@@ -210,7 +210,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543605"></a><h2>RETURN VALUES</h2>
+<a name="id2543603"></a><h2>RETURN VALUES</h2>
 <p>
       Successful calls to
       <code class="function">lwres_string_parse()</code>
@@ -248,7 +248,7 @@ typedef struct {
     </p>
 </div>
 <div class="refsect1" lang="en">
-<a name="id2543676"></a><h2>SEE ALSO</h2>
+<a name="id2543674"></a><h2>SEE ALSO</h2>
 <p><span class="citerefentry"><span class="refentrytitle">lwres_buffer</span>(3)</span>,
 
       <span class="citerefentry"><span class="refentrytitle">lwres_gabn</span>(3)</span>.
index d926008..dadbc08 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: version,v 1.39.18.13.2.1 2009/11/18 23:41:17 marka Exp $
+# $Id: version,v 1.39.18.13.2.2 2009/12/31 21:02:44 each Exp $
 # 
 # This file must follow /bin/sh rules.  It is imported directly via
 # configure.
@@ -7,4 +7,4 @@ MAJORVER=9
 MINORVER=5
 PATCHVER=2
 RELEASETYPE=-P
-RELEASEVER=1
+RELEASEVER=2