am 8e541b12: Merge "Moved nameser.h and namser_compat.h to public include dir"
authorCalin Juravle <calin@google.com>
Tue, 4 Mar 2014 17:58:52 +0000 (17:58 +0000)
committerAndroid Git Automerger <android-git-automerger@android.com>
Tue, 4 Mar 2014 17:58:52 +0000 (17:58 +0000)
* commit '8e541b12237f597c186820b9e18b059b620bef54':
  Moved nameser.h and namser_compat.h to public include dir

25 files changed:
libc/dns/gethnamaddr.c
libc/dns/inet/nsap_addr.c
libc/dns/nameser/ns_name.c
libc/dns/nameser/ns_netint.c
libc/dns/nameser/ns_parse.c
libc/dns/nameser/ns_print.c
libc/dns/nameser/ns_samedomain.c
libc/dns/nameser/ns_ttl.c
libc/dns/net/base64.c
libc/dns/net/getaddrinfo.c
libc/dns/net/getnameinfo.c
libc/dns/resolv/herror.c
libc/dns/resolv/res_cache.c
libc/dns/resolv/res_comp.c
libc/dns/resolv/res_data.c
libc/dns/resolv/res_debug.c
libc/dns/resolv/res_init.c
libc/dns/resolv/res_mkquery.c
libc/dns/resolv/res_query.c
libc/dns/resolv/res_send.c
libc/dns/resolv/res_state.c
libc/include/arpa/nameser.h
libc/include/arpa/nameser_compat.h [moved from libc/private/arpa_nameser_compat.h with 100% similarity]
libc/private/arpa_nameser.h [deleted file]
libc/upstream-netbsd/port_before.h

index 5b2f987507d6218712e4778c9c845eb681afb787..2d2cb71ae1b183bb1bc1bd69c8d1c14e0e0378dd 100644 (file)
@@ -59,7 +59,7 @@
 #include <sys/un.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include "resolv_private.h"
 #include "resolv_cache.h"
 #include <assert.h>
index e18bd33fe6697f14c7ed2646c1238b7ecbf46164..4deabac54f61285270faf33fd87142cfb7d21778 100644 (file)
@@ -32,7 +32,7 @@ __RCSID("$NetBSD: nsap_addr.c,v 1.2 2004/05/20 23:12:33 christos Exp $");
 
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <assert.h>
 #include <ctype.h>
index 85d2f6053e33e70f07bce501d08e5e55fb88c3d3..da364250c8258e6ef14dcbd0e903f9b5fc96253d 100644 (file)
@@ -29,7 +29,7 @@ __RCSID("$NetBSD: ns_name.c,v 1.3 2004/11/07 02:19:49 christos Exp $");
 #include <sys/types.h>
 
 #include <netinet/in.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <errno.h>
 #ifdef ANDROID_CHANGES
index 1b2964f4ab7c565112f5e4ec3068a3921e4bc4a2..33e6090cea3a230fe82d41f52d1905fa3ae2e05d 100644 (file)
@@ -28,7 +28,7 @@ __RCSID("$NetBSD: ns_netint.c,v 1.2 2004/05/20 20:19:00 christos Exp $");
 
 /* Import. */
 
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 /* Public. */
 
index fd94860c9513b16742878ec8810dde91ab40306a..899ff81421874013f803d7775581f6cba2a92646 100644 (file)
@@ -31,7 +31,7 @@ __RCSID("$NetBSD: ns_parse.c,v 1.2 2004/05/20 20:35:05 christos Exp $");
 #include <sys/types.h>
 
 #include <netinet/in.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <errno.h>
 #ifdef ANDROID_CHANGES
index 7465e62031e05a513d563b585862a52556416126..0b3c0680c72e27a26340ff92bd5a64ef0e931843 100644 (file)
@@ -32,7 +32,7 @@ __RCSID("$NetBSD: ns_print.c,v 1.5 2004/11/07 02:19:49 christos Exp $");
 #include <sys/socket.h>
 
 #include <netinet/in.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <arpa/inet.h>
 
 #include <isc/assertions.h>
index 04fdb6186869c3fe73978852cad681cd2078d5db..d35dfe1d4a0d4fb228be11686cc6661bcb7e741c 100644 (file)
@@ -27,7 +27,7 @@ __RCSID("$NetBSD: ns_samedomain.c,v 1.2 2004/05/20 20:35:05 christos Exp $");
 #endif
 
 #include <sys/types.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <errno.h>
 #include <string.h>
 
index cc98331f87b0e2009544352267982151ceffed4e..1ad3b49ee7298a424158d79ae16f7fbe2233633d 100644 (file)
@@ -28,7 +28,7 @@ __RCSID("$NetBSD: ns_ttl.c,v 1.2 2004/05/20 20:35:05 christos Exp $");
 
 /* Import. */
 
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <ctype.h>
 #include <errno.h>
index 72707035ff07059df61e5e32d0f886cd23a2fbc1..1886986fbece3aa0f8ebaa7bc737f931930e4ac1 100644 (file)
@@ -52,7 +52,7 @@ __RCSID("$NetBSD: base64.c,v 1.8 2002/11/11 01:15:17 thorpej Exp $");
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <assert.h>
 #include <ctype.h>
index 937c42350394e7f19495a066319a442d936c2cf8..7da69f9f5400941e98e9a5591bb1723823aba4e1 100644 (file)
@@ -87,7 +87,7 @@
 #include <net/if.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <assert.h>
 #include <ctype.h>
 #include <errno.h>
index d6c4488641d9d2f595614b25b2f3dcd90e8f4334..f9401092103e5eced3a429b82f23f2116211b0db 100644 (file)
@@ -61,7 +61,7 @@ __RCSID("$NetBSD: getnameinfo.c,v 1.53 2012/09/26 23:13:00 christos Exp $");
 #include <assert.h>
 #include <limits.h>
 #include <netdb.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include "resolv_private.h"
 #include <sys/system_properties.h>
 #include <stdlib.h>
index e90e64141931992f539d80b3a4e49712146b6fde..9aaf696b9ab00a116d2240c0c0a2c33d3adac348 100644 (file)
@@ -65,7 +65,7 @@ __RCSID("$NetBSD: herror.c,v 1.4 2004/05/23 05:09:52 christos Exp $");
 #include <sys/uio.h>
 
 #include <netinet/in.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <netdb.h>
 #ifdef ANDROID_CHANGES
index 5e2bb5cea6554cc07f5267d9018321d3939fab68..fa7345c59816ca6bcdbf5151ee5132c92aebdffa 100644 (file)
@@ -34,7 +34,7 @@
 #include "pthread.h"
 
 #include <errno.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <sys/system_properties.h>
 #include <net/if.h>
 #include <netdb.h>
index 77b81b4ae47b5593f741296f7dbcae5e9767d6f6..987b2287c8a6e196a1f9b7cdf6a442367b8de2e5 100644 (file)
@@ -82,7 +82,7 @@ __RCSID("$NetBSD: res_comp.c,v 1.6 2004/05/22 23:47:09 christos Exp $");
 #include <sys/types.h>
 #include <sys/param.h>
 #include <netinet/in.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <ctype.h>
 #ifdef ANDROID_CHANGES
 #include "resolv_private.h"
index 7e5a3084918ba8fb150a6c626f32d4b562fb62ac..9bc02e786ba99443a81f9081c317f5463a5a989a 100644 (file)
@@ -35,7 +35,7 @@ __RCSID("$NetBSD: res_data.c,v 1.8 2004/06/09 18:07:03 christos Exp $");
 
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <ctype.h>
 #include <netdb.h>
index 46e583b75b86c201f71041a06e86f931ce333804..12b79e03f622e6ccd56ee57b15e7e283a8c337b2 100644 (file)
@@ -113,7 +113,7 @@ __RCSID("$NetBSD: res_debug.c,v 1.7 2004/11/07 02:25:01 christos Exp $");
 
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <ctype.h>
 #include <errno.h>
index ceb412b8526cae8f8802f9a3bdf5ec95fe130a21..973226afd31c3c15ab91015d8d7aaef48cfc2cbe 100644 (file)
@@ -89,7 +89,7 @@ __RCSID("$NetBSD: res_init.c,v 1.8 2006/03/19 03:10:08 christos Exp $");
 
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #include <ctype.h>
 #include <stdio.h>
index fb4de7f7dc68e02d23dcc1cc77087eaedeb1985f..3736aa1477da2d9b095f3f88344d7d6976ef4289 100644 (file)
@@ -86,7 +86,7 @@ __RCSID("$NetBSD: res_mkquery.c,v 1.6 2006/01/24 17:40:32 christos Exp $");
 #include <sys/types.h>
 #include <sys/param.h>
 #include <netinet/in.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <netdb.h>
 #ifdef ANDROID_CHANGES
 #include "resolv_private.h"
index d31e83c4afb6d1a8f18c2f42895ae4d787e3c66f..fa506313b20fe5dd0f0ea64e8f5ee8b63036dae9 100644 (file)
@@ -86,7 +86,7 @@ __RCSID("$NetBSD: res_query.c,v 1.7 2006/01/24 17:41:25 christos Exp $");
 #include <sys/param.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <ctype.h>
 #include <errno.h>
 #include <netdb.h>
index e587bdc81c9b59d02c06eee4b90e09cfb0ed6de5..8e1f318fd40f5ab974b162c65d3f86815ca8b930 100644 (file)
@@ -95,7 +95,7 @@ __RCSID("$NetBSD: res_send.c,v 1.9 2006/01/24 17:41:25 christos Exp $");
 #include <sys/uio.h>
 
 #include <netinet/in.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <arpa/inet.h>
 
 #include <errno.h>
index f5d01a1f4e9042f5afc761344494bac08f465599..087a5e6dbc741fecbba7f87002e5b55b712108ea 100644 (file)
@@ -28,7 +28,7 @@
 #include <sys/cdefs.h>
 #include <sys/types.h>
 #include <arpa/inet.h>
-#include "arpa_nameser.h"
+#include <arpa/nameser.h>
 #include <netdb.h>
 #include "resolv_private.h"
 #include "resolv_cache.h"
index 028eadced19cb7aa7f97006208927f6e78a04fc4..c339db31481a20785a11430824c11972d829df0f 100644 (file)
+/*     $NetBSD: nameser.h,v 1.19 2005/12/26 19:01:47 perry Exp $       */
+
 /*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
+ * Copyright (c) 1983, 1989, 1993
+ *    The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
- *  * Redistributions of source code must retain the above copyright
+ * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#ifndef _arpa_nameser_h
-#define _arpa_nameser_h
+
+/*
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ *     Id: nameser.h,v 1.2.2.4.4.1 2004/03/09 08:33:30 marka Exp
+ */
+
+#ifndef _ARPA_NAMESER_H_
+#define _ARPA_NAMESER_H_
+
+#define BIND_4_COMPAT
 
 #include <sys/types.h>
 #include <sys/cdefs.h>
 
-/* this header intentionally blank
- *
- * the definitions normally found in <arpa/nameser.h> are
- * really a bunch of resolver's internal declarations that
- * should not be exposed to client code in any way
+/*
+ * Revision information.  This is the release date in YYYYMMDD format.
+ * It can change every day so the right thing to do with it is use it
+ * in preprocessor commands such as "#if (__NAMESER > 19931104)".  Do not
+ * compare for equality; rather, use it to determine whether your libbind.a
+ * contains a new enough lib/nameser/ to support the feature you need.
+ */
+
+#define __NAMESER      19991006        /* New interface version stamp. */
+
+/*
+ * Define constants based on RFC 883, RFC 1034, RFC 1035
+ */
+#define NS_PACKETSZ    512     /* default UDP packet size */
+#define NS_MAXDNAME    1025    /* maximum domain name */
+#define NS_MAXMSG      65535   /* maximum message size */
+#define NS_MAXCDNAME   255     /* maximum compressed domain name */
+#define NS_MAXLABEL    63      /* maximum length of domain label */
+#define NS_HFIXEDSZ    12      /* #/bytes of fixed data in header */
+#define NS_QFIXEDSZ    4       /* #/bytes of fixed data in query */
+#define NS_RRFIXEDSZ   10      /* #/bytes of fixed data in r record */
+#define NS_INT32SZ     4       /* #/bytes of data in a uint32_t */
+#define NS_INT16SZ     2       /* #/bytes of data in a uint16_t */
+#define NS_INT8SZ      1       /* #/bytes of data in a uint8_t */
+#define NS_INADDRSZ    4       /* IPv4 T_A */
+#define NS_IN6ADDRSZ   16      /* IPv6 T_AAAA */
+#define NS_CMPRSFLGS   0xc0    /* Flag bits indicating name compression. */
+#define NS_DEFAULTPORT 53      /* For both TCP and UDP. */
+
+/*
+ * These can be expanded with synonyms, just keep ns_parse.c:ns_parserecord()
+ * in synch with it.
+ */
+typedef enum __ns_sect {
+       ns_s_qd = 0,            /* Query: Question. */
+       ns_s_zn = 0,            /* Update: Zone. */
+       ns_s_an = 1,            /* Query: Answer. */
+       ns_s_pr = 1,            /* Update: Prerequisites. */
+       ns_s_ns = 2,            /* Query: Name servers. */
+       ns_s_ud = 2,            /* Update: Update. */
+       ns_s_ar = 3,            /* Query|Update: Additional records. */
+       ns_s_max = 4
+} ns_sect;
+
+/*
+ * This is a message handle.  It is caller allocated and has no dynamic data.
+ * This structure is intended to be opaque to all but ns_parse.c, thus the
+ * leading _'s on the member names.  Use the accessor functions, not the _'s.
+ */
+typedef struct __ns_msg {
+       const u_char    *_msg, *_eom;
+       uint16_t        _id, _flags, _counts[ns_s_max];
+       const u_char    *_sections[ns_s_max];
+       ns_sect         _sect;
+       int             _rrnum;
+       const u_char    *_msg_ptr;
+} ns_msg;
+
+/* Private data structure - do not use from outside library. */
+struct _ns_flagdata {  int mask, shift;  };
+extern const struct _ns_flagdata _ns_flagdata[];
+
+/* Accessor macros - this is part of the public interface. */
+
+#define ns_msg_id(handle) ((handle)._id + 0)
+#define ns_msg_base(handle) ((handle)._msg + 0)
+#define ns_msg_end(handle) ((handle)._eom + 0)
+#define ns_msg_size(handle) ((size_t)((handle)._eom - (handle)._msg))
+#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
+
+/*
+ * This is a parsed record.  It is caller allocated and has no dynamic data.
+ */
+typedef        struct __ns_rr {
+       char            name[NS_MAXDNAME];
+       uint16_t        type;
+       uint16_t        rr_class;
+       uint32_t        ttl;
+       uint16_t        rdlength;
+       const u_char *  rdata;
+} ns_rr;
+
+/* Accessor macros - this is part of the public interface. */
+#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
+#define ns_rr_type(rr) ((ns_type)((rr).type + 0))
+#define ns_rr_class(rr)        ((ns_class)((rr).rr_class + 0))
+#define ns_rr_ttl(rr)  ((u_long)(rr).ttl + 0)
+#define ns_rr_rdlen(rr)        ((size_t)(rr).rdlength + 0)
+#define ns_rr_rdata(rr)        ((rr).rdata + 0)
+
+/*
+ * These don't have to be in the same order as in the packet flags word,
+ * and they can even overlap in some cases, but they will need to be kept
+ * in synch with ns_parse.c:ns_flagdata[].
+ */
+typedef enum __ns_flag {
+       ns_f_qr,                /* Question/Response. */
+       ns_f_opcode,            /* Operation code. */
+       ns_f_aa,                /* Authoritative Answer. */
+       ns_f_tc,                /* Truncation occurred. */
+       ns_f_rd,                /* Recursion Desired. */
+       ns_f_ra,                /* Recursion Available. */
+       ns_f_z,                 /* MBZ. */
+       ns_f_ad,                /* Authentic Data (DNSSEC). */
+       ns_f_cd,                /* Checking Disabled (DNSSEC). */
+       ns_f_rcode,             /* Response code. */
+       ns_f_max
+} ns_flag;
+
+/*
+ * Currently defined opcodes.
+ */
+typedef enum __ns_opcode {
+       ns_o_query = 0,         /* Standard query. */
+       ns_o_iquery = 1,        /* Inverse query (deprecated/unsupported). */
+       ns_o_status = 2,        /* Name server status query (unsupported). */
+                               /* Opcode 3 is undefined/reserved. */
+       ns_o_notify = 4,        /* Zone change notification. */
+       ns_o_update = 5,        /* Zone update message. */
+       ns_o_max = 6
+} ns_opcode;
+
+/*
+ * Currently defined response codes.
+ */
+typedef        enum __ns_rcode {
+       ns_r_noerror = 0,       /* No error occurred. */
+       ns_r_formerr = 1,       /* Format error. */
+       ns_r_servfail = 2,      /* Server failure. */
+       ns_r_nxdomain = 3,      /* Name error. */
+       ns_r_notimpl = 4,       /* Unimplemented. */
+       ns_r_refused = 5,       /* Operation refused. */
+       /* these are for BIND_UPDATE */
+       ns_r_yxdomain = 6,      /* Name exists */
+       ns_r_yxrrset = 7,       /* RRset exists */
+       ns_r_nxrrset = 8,       /* RRset does not exist */
+       ns_r_notauth = 9,       /* Not authoritative for zone */
+       ns_r_notzone = 10,      /* Zone of record different from zone section */
+       ns_r_max = 11,
+       /* The following are EDNS extended rcodes */
+       ns_r_badvers = 16,
+       /* The following are TSIG errors */
+       ns_r_badsig = 16,
+       ns_r_badkey = 17,
+       ns_r_badtime = 18
+} ns_rcode;
+
+/* BIND_UPDATE */
+typedef enum __ns_update_operation {
+       ns_uop_delete = 0,
+       ns_uop_add = 1,
+       ns_uop_max = 2
+} ns_update_operation;
+
+/*
+ * This structure is used for TSIG authenticated messages
+ */
+struct ns_tsig_key {
+        char name[NS_MAXDNAME], alg[NS_MAXDNAME];
+        unsigned char *data;
+        int len;
+};
+typedef struct ns_tsig_key ns_tsig_key;
+
+/*
+ * This structure is used for TSIG authenticated TCP messages
+ */
+struct ns_tcp_tsig_state {
+       int counter;
+       struct dst_key *key;
+       void *ctx;
+       unsigned char sig[NS_PACKETSZ];
+       int siglen;
+};
+typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;
+
+#define NS_TSIG_FUDGE 300
+#define NS_TSIG_TCP_COUNT 100
+#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
+
+#define NS_TSIG_ERROR_NO_TSIG -10
+#define NS_TSIG_ERROR_NO_SPACE -11
+#define NS_TSIG_ERROR_FORMERR -12
+
+/*
+ * Currently defined type values for resources and queries.
+ */
+typedef enum __ns_type {
+       ns_t_invalid = 0,       /* Cookie. */
+       ns_t_a = 1,             /* Host address. */
+       ns_t_ns = 2,            /* Authoritative server. */
+       ns_t_md = 3,            /* Mail destination. */
+       ns_t_mf = 4,            /* Mail forwarder. */
+       ns_t_cname = 5,         /* Canonical name. */
+       ns_t_soa = 6,           /* Start of authority zone. */
+       ns_t_mb = 7,            /* Mailbox domain name. */
+       ns_t_mg = 8,            /* Mail group member. */
+       ns_t_mr = 9,            /* Mail rename name. */
+       ns_t_null = 10,         /* Null resource record. */
+       ns_t_wks = 11,          /* Well known service. */
+       ns_t_ptr = 12,          /* Domain name pointer. */
+       ns_t_hinfo = 13,        /* Host information. */
+       ns_t_minfo = 14,        /* Mailbox information. */
+       ns_t_mx = 15,           /* Mail routing information. */
+       ns_t_txt = 16,          /* Text strings. */
+       ns_t_rp = 17,           /* Responsible person. */
+       ns_t_afsdb = 18,        /* AFS cell database. */
+       ns_t_x25 = 19,          /* X_25 calling address. */
+       ns_t_isdn = 20,         /* ISDN calling address. */
+       ns_t_rt = 21,           /* Router. */
+       ns_t_nsap = 22,         /* NSAP address. */
+       ns_t_nsap_ptr = 23,     /* Reverse NSAP lookup (deprecated). */
+       ns_t_sig = 24,          /* Security signature. */
+       ns_t_key = 25,          /* Security key. */
+       ns_t_px = 26,           /* X.400 mail mapping. */
+       ns_t_gpos = 27,         /* Geographical position (withdrawn). */
+       ns_t_aaaa = 28,         /* Ip6 Address. */
+       ns_t_loc = 29,          /* Location Information. */
+       ns_t_nxt = 30,          /* Next domain (security). */
+       ns_t_eid = 31,          /* Endpoint identifier. */
+       ns_t_nimloc = 32,       /* Nimrod Locator. */
+       ns_t_srv = 33,          /* Server Selection. */
+       ns_t_atma = 34,         /* ATM Address */
+       ns_t_naptr = 35,        /* Naming Authority PoinTeR */
+       ns_t_kx = 36,           /* Key Exchange */
+       ns_t_cert = 37,         /* Certification record */
+       ns_t_a6 = 38,           /* IPv6 address (deprecates AAAA) */
+       ns_t_dname = 39,        /* Non-terminal DNAME (for IPv6) */
+       ns_t_sink = 40,         /* Kitchen sink (experimentatl) */
+       ns_t_opt = 41,          /* EDNS0 option (meta-RR) */
+       ns_t_apl = 42,          /* Address prefix list (RFC 3123) */
+       ns_t_tkey = 249,        /* Transaction key */
+       ns_t_tsig = 250,        /* Transaction signature. */
+       ns_t_ixfr = 251,        /* Incremental zone transfer. */
+       ns_t_axfr = 252,        /* Transfer zone of authority. */
+       ns_t_mailb = 253,       /* Transfer mailbox records. */
+       ns_t_maila = 254,       /* Transfer mail agent records. */
+       ns_t_any = 255,         /* Wildcard match. */
+       ns_t_zxfr = 256,        /* BIND-specific, nonstandard. */
+       ns_t_max = 65536
+} ns_type;
+
+/* Exclusively a QTYPE? (not also an RTYPE) */
+#define        ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
+                     (t) == ns_t_mailb || (t) == ns_t_maila)
+/* Some kind of meta-RR? (not a QTYPE, but also not an RTYPE) */
+#define        ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
+/* Exclusively an RTYPE? (not also a QTYPE or a meta-RR) */
+#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
+#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
+#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
+                      (t) == ns_t_zxfr)
+
+/*
+ * Values for class field
+ */
+typedef enum __ns_class {
+       ns_c_invalid = 0,       /* Cookie. */
+       ns_c_in = 1,            /* Internet. */
+       ns_c_2 = 2,             /* unallocated/unsupported. */
+       ns_c_chaos = 3,         /* MIT Chaos-net. */
+       ns_c_hs = 4,            /* MIT Hesiod. */
+       /* Query class values which do not appear in resource records */
+       ns_c_none = 254,        /* for prereq. sections in update requests */
+       ns_c_any = 255,         /* Wildcard match. */
+       ns_c_max = 65536
+} ns_class;
+
+/* DNSSEC constants. */
+
+typedef enum __ns_key_types {
+       ns_kt_rsa = 1,          /* key type RSA/MD5 */
+       ns_kt_dh  = 2,          /* Diffie Hellman */
+       ns_kt_dsa = 3,          /* Digital Signature Standard (MANDATORY) */
+       ns_kt_private = 254     /* Private key type starts with OID */
+} ns_key_types;
+
+typedef enum __ns_cert_types {
+       cert_t_pkix = 1,        /* PKIX (X.509v3) */
+       cert_t_spki = 2,        /* SPKI */
+       cert_t_pgp  = 3,        /* PGP */
+       cert_t_url  = 253,      /* URL private type */
+       cert_t_oid  = 254       /* OID private type */
+} ns_cert_types;
+
+/* Flags field of the KEY RR rdata. */
+#define        NS_KEY_TYPEMASK         0xC000  /* Mask for "type" bits */
+#define        NS_KEY_TYPE_AUTH_CONF   0x0000  /* Key usable for both */
+#define        NS_KEY_TYPE_CONF_ONLY   0x8000  /* Key usable for confidentiality */
+#define        NS_KEY_TYPE_AUTH_ONLY   0x4000  /* Key usable for authentication */
+#define        NS_KEY_TYPE_NO_KEY      0xC000  /* No key usable for either; no key */
+/* The type bits can also be interpreted independently, as single bits: */
+#define        NS_KEY_NO_AUTH          0x8000  /* Key unusable for authentication */
+#define        NS_KEY_NO_CONF          0x4000  /* Key unusable for confidentiality */
+#define        NS_KEY_RESERVED2        0x2000  /* Security is *mandatory* if bit=0 */
+#define        NS_KEY_EXTENDED_FLAGS   0x1000  /* reserved - must be zero */
+#define        NS_KEY_RESERVED4        0x0800  /* reserved - must be zero */
+#define        NS_KEY_RESERVED5        0x0400  /* reserved - must be zero */
+#define        NS_KEY_NAME_TYPE        0x0300  /* these bits determine the type */
+#define        NS_KEY_NAME_USER        0x0000  /* key is assoc. with user */
+#define        NS_KEY_NAME_ENTITY      0x0200  /* key is assoc. with entity eg host */
+#define        NS_KEY_NAME_ZONE        0x0100  /* key is zone key */
+#define        NS_KEY_NAME_RESERVED    0x0300  /* reserved meaning */
+#define        NS_KEY_RESERVED8        0x0080  /* reserved - must be zero */
+#define        NS_KEY_RESERVED9        0x0040  /* reserved - must be zero */
+#define        NS_KEY_RESERVED10       0x0020  /* reserved - must be zero */
+#define        NS_KEY_RESERVED11       0x0010  /* reserved - must be zero */
+#define        NS_KEY_SIGNATORYMASK    0x000F  /* key can sign RR's of same name */
+#define        NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
+                                 NS_KEY_RESERVED4 | \
+                                 NS_KEY_RESERVED5 | \
+                                 NS_KEY_RESERVED8 | \
+                                 NS_KEY_RESERVED9 | \
+                                 NS_KEY_RESERVED10 | \
+                                 NS_KEY_RESERVED11 )
+#define NS_KEY_RESERVED_BITMASK2 0xFFFF /* no bits defined here */
+
+/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */
+#define        NS_ALG_MD5RSA           1       /* MD5 with RSA */
+#define        NS_ALG_DH               2       /* Diffie Hellman KEY */
+#define        NS_ALG_DSA              3       /* DSA KEY */
+#define        NS_ALG_DSS              NS_ALG_DSA
+#define        NS_ALG_EXPIRE_ONLY      253     /* No alg, no security */
+#define        NS_ALG_PRIVATE_OID      254     /* Key begins with OID giving alg */
+
+/* Protocol values  */
+/* value 0 is reserved */
+#define NS_KEY_PROT_TLS         1
+#define NS_KEY_PROT_EMAIL       2
+#define NS_KEY_PROT_DNSSEC      3
+#define NS_KEY_PROT_IPSEC       4
+#define NS_KEY_PROT_ANY                255
+
+/* Signatures */
+#define        NS_MD5RSA_MIN_BITS       512    /* Size of a mod or exp in bits */
+#define        NS_MD5RSA_MAX_BITS      4096
+       /* Total of binary mod and exp */
+#define        NS_MD5RSA_MAX_BYTES     ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
+       /* Max length of text sig block */
+#define        NS_MD5RSA_MAX_BASE64    (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
+#define NS_MD5RSA_MIN_SIZE     ((NS_MD5RSA_MIN_BITS+7)/8)
+#define NS_MD5RSA_MAX_SIZE     ((NS_MD5RSA_MAX_BITS+7)/8)
+
+#define NS_DSA_SIG_SIZE         41
+#define NS_DSA_MIN_SIZE         213
+#define NS_DSA_MAX_BYTES        405
+
+/* Offsets into SIG record rdata to find various values */
+#define        NS_SIG_TYPE     0       /* Type flags */
+#define        NS_SIG_ALG      2       /* Algorithm */
+#define        NS_SIG_LABELS   3       /* How many labels in name */
+#define        NS_SIG_OTTL     4       /* Original TTL */
+#define        NS_SIG_EXPIR    8       /* Expiration time */
+#define        NS_SIG_SIGNED   12      /* Signature time */
+#define        NS_SIG_FOOT     16      /* Key footprint */
+#define        NS_SIG_SIGNER   18      /* Domain name of who signed it */
+
+/* How RR types are represented as bit-flags in NXT records */
+#define        NS_NXT_BITS 8
+#define        NS_NXT_BIT_SET(  n,p) (p[(n)/NS_NXT_BITS] |=  (0x80>>((n)%NS_NXT_BITS)))
+#define        NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
+#define        NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] &   (0x80>>((n)%NS_NXT_BITS)))
+#define NS_NXT_MAX 127
+
+/*
+ * EDNS0 extended flags, host order.
+ */
+#define NS_OPT_DNSSEC_OK       0x8000U
+
+/*
+ * Inline versions of get/put short/long.  Pointer is advanced.
+ */
+#define NS_GET16(s, cp) do { \
+       const u_char *t_cp = (const u_char *)(cp); \
+       (s) = ((uint16_t)t_cp[0] << 8) \
+           | ((uint16_t)t_cp[1]) \
+           ; \
+       (cp) += NS_INT16SZ; \
+} while (/*CONSTCOND*/0)
+
+#define NS_GET32(l, cp) do { \
+       const u_char *t_cp = (const u_char *)(cp); \
+       (l) = ((uint32_t)t_cp[0] << 24) \
+           | ((uint32_t)t_cp[1] << 16) \
+           | ((uint32_t)t_cp[2] << 8) \
+           | ((uint32_t)t_cp[3]) \
+           ; \
+       (cp) += NS_INT32SZ; \
+} while (/*CONSTCOND*/0)
+
+#define NS_PUT16(s, cp) do { \
+       uint32_t t_s = (uint32_t)(s); \
+       u_char *t_cp = (u_char *)(cp); \
+       *t_cp++ = t_s >> 8; \
+       *t_cp   = t_s; \
+       (cp) += NS_INT16SZ; \
+} while (/*CONSTCOND*/0)
+
+#define NS_PUT32(l, cp) do { \
+       uint32_t t_l = (uint32_t)(l); \
+       u_char *t_cp = (u_char *)(cp); \
+       *t_cp++ = t_l >> 24; \
+       *t_cp++ = t_l >> 16; \
+       *t_cp++ = t_l >> 8; \
+       *t_cp   = t_l; \
+       (cp) += NS_INT32SZ; \
+} while (/*CONSTCOND*/0)
+
+/*
+ * ANSI C identifier hiding for bind's lib/nameser.
  */
+#define        ns_msg_getflag          __ns_msg_getflag
+#define ns_get16               __ns_get16
+#define ns_get32               __ns_get32
+#define ns_put16               __ns_put16
+#define ns_put32               __ns_put32
+#define ns_initparse           __ns_initparse
+#define ns_skiprr              __ns_skiprr
+#define ns_parserr             __ns_parserr
+#define        ns_sprintrr             __ns_sprintrr
+#define        ns_sprintrrf            __ns_sprintrrf
+#define        ns_format_ttl           __ns_format_ttl
+#define        ns_parse_ttl            __ns_parse_ttl
+#define ns_datetosecs          __ns_datetosecs
+#define        ns_name_ntol            __ns_name_ntol
+#define        ns_name_ntop            __ns_name_ntop
+#define        ns_name_pton            __ns_name_pton
+#define        ns_name_unpack          __ns_name_unpack
+#define        ns_name_pack            __ns_name_pack
+#define        ns_name_compress        __ns_name_compress
+#define        ns_name_uncompress      __ns_name_uncompress
+#define        ns_name_skip            __ns_name_skip
+#define        ns_name_rollback        __ns_name_rollback
+#define        ns_sign                 __ns_sign
+#define        ns_sign2                __ns_sign2
+#define        ns_sign_tcp             __ns_sign_tcp
+#define        ns_sign_tcp2            __ns_sign_tcp2
+#define        ns_sign_tcp_init        __ns_sign_tcp_init
+#define ns_find_tsig           __ns_find_tsig
+#define        ns_verify               __ns_verify
+#define        ns_verify_tcp           __ns_verify_tcp
+#define        ns_verify_tcp_init      __ns_verify_tcp_init
+#define        ns_samedomain           __ns_samedomain
+#define        ns_subdomain            __ns_subdomain
+#define        ns_makecanon            __ns_makecanon
+#define        ns_samename             __ns_samename
+
+__BEGIN_DECLS
+int            ns_msg_getflag(ns_msg, int);
+uint16_t       ns_get16(const u_char *);
+uint32_t       ns_get32(const u_char *);
+void           ns_put16(uint16_t, u_char *);
+void           ns_put32(uint32_t, u_char *);
+int            ns_initparse(const u_char *, int, ns_msg *);
+int            ns_skiprr(const u_char *, const u_char *, ns_sect, int);
+int            ns_parserr(ns_msg *, ns_sect, int, ns_rr *);
+int            ns_sprintrr(const ns_msg *, const ns_rr *,
+                                const char *, const char *, char *, size_t);
+int            ns_sprintrrf(const u_char *, size_t, const char *,
+                                 ns_class, ns_type, u_long, const u_char *,
+                                 size_t, const char *, const char *,
+                                 char *, size_t);
+int            ns_format_ttl(u_long, char *, size_t);
+int            ns_parse_ttl(const char *, u_long *);
+uint32_t       ns_datetosecs(const char *cp, int *errp);
+int            ns_name_ntol(const u_char *, u_char *, size_t);
+int            ns_name_ntop(const u_char *, char *, size_t);
+int            ns_name_pton(const char *, u_char *, size_t);
+int            ns_name_unpack(const u_char *, const u_char *,
+                                   const u_char *, u_char *, size_t);
+int            ns_name_pack(const u_char *, u_char *, int,
+                                 const u_char **, const u_char **);
+int            ns_name_uncompress(const u_char *, const u_char *,
+                                       const u_char *, char *, size_t);
+int            ns_name_compress(const char *, u_char *, size_t,
+                                     const u_char **, const u_char **);
+int            ns_name_skip(const u_char **, const u_char *);
+void           ns_name_rollback(const u_char *, const u_char **,
+                                     const u_char **);
+int            ns_sign(u_char *, int *, int, int, void *,
+                            const u_char *, int, u_char *, int *, time_t);
+int            ns_sign2(u_char *, int *, int, int, void *,
+                             const u_char *, int, u_char *, int *, time_t,
+                             u_char **, u_char **);
+int            ns_sign_tcp(u_char *, int *, int, int,
+                                ns_tcp_tsig_state *, int);
+int            ns_sign_tcp2(u_char *, int *, int, int,
+                                 ns_tcp_tsig_state *, int,
+                                 u_char **, u_char **);
+int            ns_sign_tcp_init(void *, const u_char *, int,
+                                       ns_tcp_tsig_state *);
+u_char         *ns_find_tsig(u_char *, u_char *);
+int            ns_verify(u_char *, int *, void *,
+                              const u_char *, int, u_char *, int *,
+                              time_t *, int);
+int            ns_verify_tcp(u_char *, int *, ns_tcp_tsig_state *, int);
+int            ns_verify_tcp_init(void *, const u_char *, int,
+                                       ns_tcp_tsig_state *);
+int            ns_samedomain(const char *, const char *);
+int            ns_subdomain(const char *, const char *);
+int            ns_makecanon(const char *, char *, size_t);
+int            ns_samename(const char *, const char *);
+__END_DECLS
+
+#ifdef BIND_4_COMPAT
+#include <arpa/nameser_compat.h>
+#endif
+
+#if 0
+#  include "private/libc_logging.h"
+#  define XLOG(...)  __libc_format_log(ANDROID_LOG_DEBUG,"libc",__VA_ARGS__)
+#else
+#define  XLOG(...)   do {} while (0)
+#endif
 
-#endif /* _arpa_nameser_h */
+#endif /* !_ARPA_NAMESER_H_ */
diff --git a/libc/private/arpa_nameser.h b/libc/private/arpa_nameser.h
deleted file mode 100644 (file)
index 421c3ee..0000000
+++ /dev/null
@@ -1,576 +0,0 @@
-/*     $NetBSD: nameser.h,v 1.19 2005/12/26 19:01:47 perry Exp $       */
-
-/*
- * Copyright (c) 1983, 1989, 1993
- *    The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- *     Id: nameser.h,v 1.2.2.4.4.1 2004/03/09 08:33:30 marka Exp
- */
-
-#ifndef _ARPA_NAMESER_H_
-#define _ARPA_NAMESER_H_
-
-#define BIND_4_COMPAT
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-/*
- * Revision information.  This is the release date in YYYYMMDD format.
- * It can change every day so the right thing to do with it is use it
- * in preprocessor commands such as "#if (__NAMESER > 19931104)".  Do not
- * compare for equality; rather, use it to determine whether your libbind.a
- * contains a new enough lib/nameser/ to support the feature you need.
- */
-
-#define __NAMESER      19991006        /* New interface version stamp. */
-
-/*
- * Define constants based on RFC 883, RFC 1034, RFC 1035
- */
-#define NS_PACKETSZ    512     /* default UDP packet size */
-#define NS_MAXDNAME    1025    /* maximum domain name */
-#define NS_MAXMSG      65535   /* maximum message size */
-#define NS_MAXCDNAME   255     /* maximum compressed domain name */
-#define NS_MAXLABEL    63      /* maximum length of domain label */
-#define NS_HFIXEDSZ    12      /* #/bytes of fixed data in header */
-#define NS_QFIXEDSZ    4       /* #/bytes of fixed data in query */
-#define NS_RRFIXEDSZ   10      /* #/bytes of fixed data in r record */
-#define NS_INT32SZ     4       /* #/bytes of data in a uint32_t */
-#define NS_INT16SZ     2       /* #/bytes of data in a uint16_t */
-#define NS_INT8SZ      1       /* #/bytes of data in a uint8_t */
-#define NS_INADDRSZ    4       /* IPv4 T_A */
-#define NS_IN6ADDRSZ   16      /* IPv6 T_AAAA */
-#define NS_CMPRSFLGS   0xc0    /* Flag bits indicating name compression. */
-#define NS_DEFAULTPORT 53      /* For both TCP and UDP. */
-
-/*
- * These can be expanded with synonyms, just keep ns_parse.c:ns_parserecord()
- * in synch with it.
- */
-typedef enum __ns_sect {
-       ns_s_qd = 0,            /* Query: Question. */
-       ns_s_zn = 0,            /* Update: Zone. */
-       ns_s_an = 1,            /* Query: Answer. */
-       ns_s_pr = 1,            /* Update: Prerequisites. */
-       ns_s_ns = 2,            /* Query: Name servers. */
-       ns_s_ud = 2,            /* Update: Update. */
-       ns_s_ar = 3,            /* Query|Update: Additional records. */
-       ns_s_max = 4
-} ns_sect;
-
-/*
- * This is a message handle.  It is caller allocated and has no dynamic data.
- * This structure is intended to be opaque to all but ns_parse.c, thus the
- * leading _'s on the member names.  Use the accessor functions, not the _'s.
- */
-typedef struct __ns_msg {
-       const u_char    *_msg, *_eom;
-       uint16_t        _id, _flags, _counts[ns_s_max];
-       const u_char    *_sections[ns_s_max];
-       ns_sect         _sect;
-       int             _rrnum;
-       const u_char    *_msg_ptr;
-} ns_msg;
-
-/* Private data structure - do not use from outside library. */
-struct _ns_flagdata {  int mask, shift;  };
-extern const struct _ns_flagdata _ns_flagdata[];
-
-/* Accessor macros - this is part of the public interface. */
-
-#define ns_msg_id(handle) ((handle)._id + 0)
-#define ns_msg_base(handle) ((handle)._msg + 0)
-#define ns_msg_end(handle) ((handle)._eom + 0)
-#define ns_msg_size(handle) ((size_t)((handle)._eom - (handle)._msg))
-#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
-
-/*
- * This is a parsed record.  It is caller allocated and has no dynamic data.
- */
-typedef        struct __ns_rr {
-       char            name[NS_MAXDNAME];
-       uint16_t        type;
-       uint16_t        rr_class;
-       uint32_t        ttl;
-       uint16_t        rdlength;
-       const u_char *  rdata;
-} ns_rr;
-
-/* Accessor macros - this is part of the public interface. */
-#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
-#define ns_rr_type(rr) ((ns_type)((rr).type + 0))
-#define ns_rr_class(rr)        ((ns_class)((rr).rr_class + 0))
-#define ns_rr_ttl(rr)  ((u_long)(rr).ttl + 0)
-#define ns_rr_rdlen(rr)        ((size_t)(rr).rdlength + 0)
-#define ns_rr_rdata(rr)        ((rr).rdata + 0)
-
-/*
- * These don't have to be in the same order as in the packet flags word,
- * and they can even overlap in some cases, but they will need to be kept
- * in synch with ns_parse.c:ns_flagdata[].
- */
-typedef enum __ns_flag {
-       ns_f_qr,                /* Question/Response. */
-       ns_f_opcode,            /* Operation code. */
-       ns_f_aa,                /* Authoritative Answer. */
-       ns_f_tc,                /* Truncation occurred. */
-       ns_f_rd,                /* Recursion Desired. */
-       ns_f_ra,                /* Recursion Available. */
-       ns_f_z,                 /* MBZ. */
-       ns_f_ad,                /* Authentic Data (DNSSEC). */
-       ns_f_cd,                /* Checking Disabled (DNSSEC). */
-       ns_f_rcode,             /* Response code. */
-       ns_f_max
-} ns_flag;
-
-/*
- * Currently defined opcodes.
- */
-typedef enum __ns_opcode {
-       ns_o_query = 0,         /* Standard query. */
-       ns_o_iquery = 1,        /* Inverse query (deprecated/unsupported). */
-       ns_o_status = 2,        /* Name server status query (unsupported). */
-                               /* Opcode 3 is undefined/reserved. */
-       ns_o_notify = 4,        /* Zone change notification. */
-       ns_o_update = 5,        /* Zone update message. */
-       ns_o_max = 6
-} ns_opcode;
-
-/*
- * Currently defined response codes.
- */
-typedef        enum __ns_rcode {
-       ns_r_noerror = 0,       /* No error occurred. */
-       ns_r_formerr = 1,       /* Format error. */
-       ns_r_servfail = 2,      /* Server failure. */
-       ns_r_nxdomain = 3,      /* Name error. */
-       ns_r_notimpl = 4,       /* Unimplemented. */
-       ns_r_refused = 5,       /* Operation refused. */
-       /* these are for BIND_UPDATE */
-       ns_r_yxdomain = 6,      /* Name exists */
-       ns_r_yxrrset = 7,       /* RRset exists */
-       ns_r_nxrrset = 8,       /* RRset does not exist */
-       ns_r_notauth = 9,       /* Not authoritative for zone */
-       ns_r_notzone = 10,      /* Zone of record different from zone section */
-       ns_r_max = 11,
-       /* The following are EDNS extended rcodes */
-       ns_r_badvers = 16,
-       /* The following are TSIG errors */
-       ns_r_badsig = 16,
-       ns_r_badkey = 17,
-       ns_r_badtime = 18
-} ns_rcode;
-
-/* BIND_UPDATE */
-typedef enum __ns_update_operation {
-       ns_uop_delete = 0,
-       ns_uop_add = 1,
-       ns_uop_max = 2
-} ns_update_operation;
-
-/*
- * This structure is used for TSIG authenticated messages
- */
-struct ns_tsig_key {
-        char name[NS_MAXDNAME], alg[NS_MAXDNAME];
-        unsigned char *data;
-        int len;
-};
-typedef struct ns_tsig_key ns_tsig_key;
-
-/*
- * This structure is used for TSIG authenticated TCP messages
- */
-struct ns_tcp_tsig_state {
-       int counter;
-       struct dst_key *key;
-       void *ctx;
-       unsigned char sig[NS_PACKETSZ];
-       int siglen;
-};
-typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;
-
-#define NS_TSIG_FUDGE 300
-#define NS_TSIG_TCP_COUNT 100
-#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
-
-#define NS_TSIG_ERROR_NO_TSIG -10
-#define NS_TSIG_ERROR_NO_SPACE -11
-#define NS_TSIG_ERROR_FORMERR -12
-
-/*
- * Currently defined type values for resources and queries.
- */
-typedef enum __ns_type {
-       ns_t_invalid = 0,       /* Cookie. */
-       ns_t_a = 1,             /* Host address. */
-       ns_t_ns = 2,            /* Authoritative server. */
-       ns_t_md = 3,            /* Mail destination. */
-       ns_t_mf = 4,            /* Mail forwarder. */
-       ns_t_cname = 5,         /* Canonical name. */
-       ns_t_soa = 6,           /* Start of authority zone. */
-       ns_t_mb = 7,            /* Mailbox domain name. */
-       ns_t_mg = 8,            /* Mail group member. */
-       ns_t_mr = 9,            /* Mail rename name. */
-       ns_t_null = 10,         /* Null resource record. */
-       ns_t_wks = 11,          /* Well known service. */
-       ns_t_ptr = 12,          /* Domain name pointer. */
-       ns_t_hinfo = 13,        /* Host information. */
-       ns_t_minfo = 14,        /* Mailbox information. */
-       ns_t_mx = 15,           /* Mail routing information. */
-       ns_t_txt = 16,          /* Text strings. */
-       ns_t_rp = 17,           /* Responsible person. */
-       ns_t_afsdb = 18,        /* AFS cell database. */
-       ns_t_x25 = 19,          /* X_25 calling address. */
-       ns_t_isdn = 20,         /* ISDN calling address. */
-       ns_t_rt = 21,           /* Router. */
-       ns_t_nsap = 22,         /* NSAP address. */
-       ns_t_nsap_ptr = 23,     /* Reverse NSAP lookup (deprecated). */
-       ns_t_sig = 24,          /* Security signature. */
-       ns_t_key = 25,          /* Security key. */
-       ns_t_px = 26,           /* X.400 mail mapping. */
-       ns_t_gpos = 27,         /* Geographical position (withdrawn). */
-       ns_t_aaaa = 28,         /* Ip6 Address. */
-       ns_t_loc = 29,          /* Location Information. */
-       ns_t_nxt = 30,          /* Next domain (security). */
-       ns_t_eid = 31,          /* Endpoint identifier. */
-       ns_t_nimloc = 32,       /* Nimrod Locator. */
-       ns_t_srv = 33,          /* Server Selection. */
-       ns_t_atma = 34,         /* ATM Address */
-       ns_t_naptr = 35,        /* Naming Authority PoinTeR */
-       ns_t_kx = 36,           /* Key Exchange */
-       ns_t_cert = 37,         /* Certification record */
-       ns_t_a6 = 38,           /* IPv6 address (deprecates AAAA) */
-       ns_t_dname = 39,        /* Non-terminal DNAME (for IPv6) */
-       ns_t_sink = 40,         /* Kitchen sink (experimentatl) */
-       ns_t_opt = 41,          /* EDNS0 option (meta-RR) */
-       ns_t_apl = 42,          /* Address prefix list (RFC 3123) */
-       ns_t_tkey = 249,        /* Transaction key */
-       ns_t_tsig = 250,        /* Transaction signature. */
-       ns_t_ixfr = 251,        /* Incremental zone transfer. */
-       ns_t_axfr = 252,        /* Transfer zone of authority. */
-       ns_t_mailb = 253,       /* Transfer mailbox records. */
-       ns_t_maila = 254,       /* Transfer mail agent records. */
-       ns_t_any = 255,         /* Wildcard match. */
-       ns_t_zxfr = 256,        /* BIND-specific, nonstandard. */
-       ns_t_max = 65536
-} ns_type;
-
-/* Exclusively a QTYPE? (not also an RTYPE) */
-#define        ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
-                     (t) == ns_t_mailb || (t) == ns_t_maila)
-/* Some kind of meta-RR? (not a QTYPE, but also not an RTYPE) */
-#define        ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
-/* Exclusively an RTYPE? (not also a QTYPE or a meta-RR) */
-#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
-#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
-#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
-                      (t) == ns_t_zxfr)
-
-/*
- * Values for class field
- */
-typedef enum __ns_class {
-       ns_c_invalid = 0,       /* Cookie. */
-       ns_c_in = 1,            /* Internet. */
-       ns_c_2 = 2,             /* unallocated/unsupported. */
-       ns_c_chaos = 3,         /* MIT Chaos-net. */
-       ns_c_hs = 4,            /* MIT Hesiod. */
-       /* Query class values which do not appear in resource records */
-       ns_c_none = 254,        /* for prereq. sections in update requests */
-       ns_c_any = 255,         /* Wildcard match. */
-       ns_c_max = 65536
-} ns_class;
-
-/* DNSSEC constants. */
-
-typedef enum __ns_key_types {
-       ns_kt_rsa = 1,          /* key type RSA/MD5 */
-       ns_kt_dh  = 2,          /* Diffie Hellman */
-       ns_kt_dsa = 3,          /* Digital Signature Standard (MANDATORY) */
-       ns_kt_private = 254     /* Private key type starts with OID */
-} ns_key_types;
-
-typedef enum __ns_cert_types {
-       cert_t_pkix = 1,        /* PKIX (X.509v3) */
-       cert_t_spki = 2,        /* SPKI */
-       cert_t_pgp  = 3,        /* PGP */
-       cert_t_url  = 253,      /* URL private type */
-       cert_t_oid  = 254       /* OID private type */
-} ns_cert_types;
-
-/* Flags field of the KEY RR rdata. */
-#define        NS_KEY_TYPEMASK         0xC000  /* Mask for "type" bits */
-#define        NS_KEY_TYPE_AUTH_CONF   0x0000  /* Key usable for both */
-#define        NS_KEY_TYPE_CONF_ONLY   0x8000  /* Key usable for confidentiality */
-#define        NS_KEY_TYPE_AUTH_ONLY   0x4000  /* Key usable for authentication */
-#define        NS_KEY_TYPE_NO_KEY      0xC000  /* No key usable for either; no key */
-/* The type bits can also be interpreted independently, as single bits: */
-#define        NS_KEY_NO_AUTH          0x8000  /* Key unusable for authentication */
-#define        NS_KEY_NO_CONF          0x4000  /* Key unusable for confidentiality */
-#define        NS_KEY_RESERVED2        0x2000  /* Security is *mandatory* if bit=0 */
-#define        NS_KEY_EXTENDED_FLAGS   0x1000  /* reserved - must be zero */
-#define        NS_KEY_RESERVED4        0x0800  /* reserved - must be zero */
-#define        NS_KEY_RESERVED5        0x0400  /* reserved - must be zero */
-#define        NS_KEY_NAME_TYPE        0x0300  /* these bits determine the type */
-#define        NS_KEY_NAME_USER        0x0000  /* key is assoc. with user */
-#define        NS_KEY_NAME_ENTITY      0x0200  /* key is assoc. with entity eg host */
-#define        NS_KEY_NAME_ZONE        0x0100  /* key is zone key */
-#define        NS_KEY_NAME_RESERVED    0x0300  /* reserved meaning */
-#define        NS_KEY_RESERVED8        0x0080  /* reserved - must be zero */
-#define        NS_KEY_RESERVED9        0x0040  /* reserved - must be zero */
-#define        NS_KEY_RESERVED10       0x0020  /* reserved - must be zero */
-#define        NS_KEY_RESERVED11       0x0010  /* reserved - must be zero */
-#define        NS_KEY_SIGNATORYMASK    0x000F  /* key can sign RR's of same name */
-#define        NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
-                                 NS_KEY_RESERVED4 | \
-                                 NS_KEY_RESERVED5 | \
-                                 NS_KEY_RESERVED8 | \
-                                 NS_KEY_RESERVED9 | \
-                                 NS_KEY_RESERVED10 | \
-                                 NS_KEY_RESERVED11 )
-#define NS_KEY_RESERVED_BITMASK2 0xFFFF /* no bits defined here */
-
-/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */
-#define        NS_ALG_MD5RSA           1       /* MD5 with RSA */
-#define        NS_ALG_DH               2       /* Diffie Hellman KEY */
-#define        NS_ALG_DSA              3       /* DSA KEY */
-#define        NS_ALG_DSS              NS_ALG_DSA
-#define        NS_ALG_EXPIRE_ONLY      253     /* No alg, no security */
-#define        NS_ALG_PRIVATE_OID      254     /* Key begins with OID giving alg */
-
-/* Protocol values  */
-/* value 0 is reserved */
-#define NS_KEY_PROT_TLS         1
-#define NS_KEY_PROT_EMAIL       2
-#define NS_KEY_PROT_DNSSEC      3
-#define NS_KEY_PROT_IPSEC       4
-#define NS_KEY_PROT_ANY                255
-
-/* Signatures */
-#define        NS_MD5RSA_MIN_BITS       512    /* Size of a mod or exp in bits */
-#define        NS_MD5RSA_MAX_BITS      4096
-       /* Total of binary mod and exp */
-#define        NS_MD5RSA_MAX_BYTES     ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
-       /* Max length of text sig block */
-#define        NS_MD5RSA_MAX_BASE64    (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
-#define NS_MD5RSA_MIN_SIZE     ((NS_MD5RSA_MIN_BITS+7)/8)
-#define NS_MD5RSA_MAX_SIZE     ((NS_MD5RSA_MAX_BITS+7)/8)
-
-#define NS_DSA_SIG_SIZE         41
-#define NS_DSA_MIN_SIZE         213
-#define NS_DSA_MAX_BYTES        405
-
-/* Offsets into SIG record rdata to find various values */
-#define        NS_SIG_TYPE     0       /* Type flags */
-#define        NS_SIG_ALG      2       /* Algorithm */
-#define        NS_SIG_LABELS   3       /* How many labels in name */
-#define        NS_SIG_OTTL     4       /* Original TTL */
-#define        NS_SIG_EXPIR    8       /* Expiration time */
-#define        NS_SIG_SIGNED   12      /* Signature time */
-#define        NS_SIG_FOOT     16      /* Key footprint */
-#define        NS_SIG_SIGNER   18      /* Domain name of who signed it */
-
-/* How RR types are represented as bit-flags in NXT records */
-#define        NS_NXT_BITS 8
-#define        NS_NXT_BIT_SET(  n,p) (p[(n)/NS_NXT_BITS] |=  (0x80>>((n)%NS_NXT_BITS)))
-#define        NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
-#define        NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] &   (0x80>>((n)%NS_NXT_BITS)))
-#define NS_NXT_MAX 127
-
-/*
- * EDNS0 extended flags, host order.
- */
-#define NS_OPT_DNSSEC_OK       0x8000U
-
-/*
- * Inline versions of get/put short/long.  Pointer is advanced.
- */
-#define NS_GET16(s, cp) do { \
-       const u_char *t_cp = (const u_char *)(cp); \
-       (s) = ((uint16_t)t_cp[0] << 8) \
-           | ((uint16_t)t_cp[1]) \
-           ; \
-       (cp) += NS_INT16SZ; \
-} while (/*CONSTCOND*/0)
-
-#define NS_GET32(l, cp) do { \
-       const u_char *t_cp = (const u_char *)(cp); \
-       (l) = ((uint32_t)t_cp[0] << 24) \
-           | ((uint32_t)t_cp[1] << 16) \
-           | ((uint32_t)t_cp[2] << 8) \
-           | ((uint32_t)t_cp[3]) \
-           ; \
-       (cp) += NS_INT32SZ; \
-} while (/*CONSTCOND*/0)
-
-#define NS_PUT16(s, cp) do { \
-       uint32_t t_s = (uint32_t)(s); \
-       u_char *t_cp = (u_char *)(cp); \
-       *t_cp++ = t_s >> 8; \
-       *t_cp   = t_s; \
-       (cp) += NS_INT16SZ; \
-} while (/*CONSTCOND*/0)
-
-#define NS_PUT32(l, cp) do { \
-       uint32_t t_l = (uint32_t)(l); \
-       u_char *t_cp = (u_char *)(cp); \
-       *t_cp++ = t_l >> 24; \
-       *t_cp++ = t_l >> 16; \
-       *t_cp++ = t_l >> 8; \
-       *t_cp   = t_l; \
-       (cp) += NS_INT32SZ; \
-} while (/*CONSTCOND*/0)
-
-/*
- * ANSI C identifier hiding for bind's lib/nameser.
- */
-#define        ns_msg_getflag          __ns_msg_getflag
-#define ns_get16               __ns_get16
-#define ns_get32               __ns_get32
-#define ns_put16               __ns_put16
-#define ns_put32               __ns_put32
-#define ns_initparse           __ns_initparse
-#define ns_skiprr              __ns_skiprr
-#define ns_parserr             __ns_parserr
-#define        ns_sprintrr             __ns_sprintrr
-#define        ns_sprintrrf            __ns_sprintrrf
-#define        ns_format_ttl           __ns_format_ttl
-#define        ns_parse_ttl            __ns_parse_ttl
-#define ns_datetosecs          __ns_datetosecs
-#define        ns_name_ntol            __ns_name_ntol
-#define        ns_name_ntop            __ns_name_ntop
-#define        ns_name_pton            __ns_name_pton
-#define        ns_name_unpack          __ns_name_unpack
-#define        ns_name_pack            __ns_name_pack
-#define        ns_name_compress        __ns_name_compress
-#define        ns_name_uncompress      __ns_name_uncompress
-#define        ns_name_skip            __ns_name_skip
-#define        ns_name_rollback        __ns_name_rollback
-#define        ns_sign                 __ns_sign
-#define        ns_sign2                __ns_sign2
-#define        ns_sign_tcp             __ns_sign_tcp
-#define        ns_sign_tcp2            __ns_sign_tcp2
-#define        ns_sign_tcp_init        __ns_sign_tcp_init
-#define ns_find_tsig           __ns_find_tsig
-#define        ns_verify               __ns_verify
-#define        ns_verify_tcp           __ns_verify_tcp
-#define        ns_verify_tcp_init      __ns_verify_tcp_init
-#define        ns_samedomain           __ns_samedomain
-#define        ns_subdomain            __ns_subdomain
-#define        ns_makecanon            __ns_makecanon
-#define        ns_samename             __ns_samename
-
-__BEGIN_DECLS
-int            ns_msg_getflag(ns_msg, int);
-uint16_t       ns_get16(const u_char *);
-uint32_t       ns_get32(const u_char *);
-void           ns_put16(uint16_t, u_char *);
-void           ns_put32(uint32_t, u_char *);
-int            ns_initparse(const u_char *, int, ns_msg *);
-int            ns_skiprr(const u_char *, const u_char *, ns_sect, int);
-int            ns_parserr(ns_msg *, ns_sect, int, ns_rr *);
-int            ns_sprintrr(const ns_msg *, const ns_rr *,
-                                const char *, const char *, char *, size_t);
-int            ns_sprintrrf(const u_char *, size_t, const char *,
-                                 ns_class, ns_type, u_long, const u_char *,
-                                 size_t, const char *, const char *,
-                                 char *, size_t);
-int            ns_format_ttl(u_long, char *, size_t);
-int            ns_parse_ttl(const char *, u_long *);
-uint32_t       ns_datetosecs(const char *cp, int *errp);
-int            ns_name_ntol(const u_char *, u_char *, size_t);
-int            ns_name_ntop(const u_char *, char *, size_t);
-int            ns_name_pton(const char *, u_char *, size_t);
-int            ns_name_unpack(const u_char *, const u_char *,
-                                   const u_char *, u_char *, size_t);
-int            ns_name_pack(const u_char *, u_char *, int,
-                                 const u_char **, const u_char **);
-int            ns_name_uncompress(const u_char *, const u_char *,
-                                       const u_char *, char *, size_t);
-int            ns_name_compress(const char *, u_char *, size_t,
-                                     const u_char **, const u_char **);
-int            ns_name_skip(const u_char **, const u_char *);
-void           ns_name_rollback(const u_char *, const u_char **,
-                                     const u_char **);
-int            ns_sign(u_char *, int *, int, int, void *,
-                            const u_char *, int, u_char *, int *, time_t);
-int            ns_sign2(u_char *, int *, int, int, void *,
-                             const u_char *, int, u_char *, int *, time_t,
-                             u_char **, u_char **);
-int            ns_sign_tcp(u_char *, int *, int, int,
-                                ns_tcp_tsig_state *, int);
-int            ns_sign_tcp2(u_char *, int *, int, int,
-                                 ns_tcp_tsig_state *, int,
-                                 u_char **, u_char **);
-int            ns_sign_tcp_init(void *, const u_char *, int,
-                                       ns_tcp_tsig_state *);
-u_char         *ns_find_tsig(u_char *, u_char *);
-int            ns_verify(u_char *, int *, void *,
-                              const u_char *, int, u_char *, int *,
-                              time_t *, int);
-int            ns_verify_tcp(u_char *, int *, ns_tcp_tsig_state *, int);
-int            ns_verify_tcp_init(void *, const u_char *, int,
-                                       ns_tcp_tsig_state *);
-int            ns_samedomain(const char *, const char *);
-int            ns_subdomain(const char *, const char *);
-int            ns_makecanon(const char *, char *, size_t);
-int            ns_samename(const char *, const char *);
-__END_DECLS
-
-#ifdef BIND_4_COMPAT
-#include "arpa_nameser_compat.h"
-#endif
-
-#if 0
-#  include "private/libc_logging.h"
-#  define XLOG(...)  __libc_format_log(ANDROID_LOG_DEBUG,"libc",__VA_ARGS__)
-#else
-#define  XLOG(...)   do {} while (0)
-#endif
-
-#endif /* !_ARPA_NAMESER_H_ */
index 23d99c2be50f8df89b0fd17cbcbf0989bf608be1..9fa94874450ef5a9a97a60bd07bda3e5cda6114d 100644 (file)
@@ -20,7 +20,7 @@
 #include "namespace.h"
 #include <sys/cdefs.h>
 #include <time.h>
-#include "private/arpa_nameser.h"
+#include <arpa/nameser.h>
 
 #define ISC_FORMAT_PRINTF(a,b) __printflike(a,b)
 #define ISC_SOCKLEN_T socklen_t