static char hexcookie[81];
static bool short_form = false, printcmd = true,
- ip6_int = false, plusquest = false, pluscomm = false,
+ plusquest = false, pluscomm = false,
ipv4only = false, ipv6only = false;
static uint32_t splitwidth = 0xffffffff;
" -b address[#port] (bind to source address/port)\n"
" -c class (specify query class)\n"
" -f filename (batch mode)\n"
-" -i (use IP6.INT for IPv6 reverse lookups)\n"
" -k keyfile (specify tsig key file)\n"
" -m (enable memory usage debugging)\n"
" -p port (specify port number)\n"
exit(0);
break;
case 'i':
- ip6_int = true;
+ /* deprecated */
break;
case 'm': /* memdebug */
/* memdebug is handled in preparse_args() */
*lookup = clone_lookup(default_lookup, true);
*need_clone = true;
if (get_reverse(textname, sizeof(textname), value,
- ip6_int, false) == ISC_R_SUCCESS) {
+ false) == ISC_R_SUCCESS) {
strlcpy((*lookup)->textname, textname,
sizeof((*lookup)->textname));
debug("looking up %s", (*lookup)->textname);
(*lookup)->trace_root = ((*lookup)->trace ||
(*lookup)->ns_search_only);
- (*lookup)->ip6_int = ip6_int;
if (!(*lookup)->rdtypeset)
(*lookup)->rdtype = dns_rdatatype_ptr;
if (!(*lookup)->rdclassset)
</listitem>
</varlistentry>
- <varlistentry>
- <term>-i</term>
- <listitem>
- <para>
- Do reverse IPv6 lookups using the obsolete RFC 1886 IP6.INT
- domain, which is no longer in use. Obsolete bit string
- label queries (RFC 2874) are not attempted.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>-k <replaceable class="parameter">keyfile</replaceable></term>
<listitem>
<literal>94.2.0.192.in-addr.arpa</literal> and sets the
query type and class to PTR and IN respectively. IPv6
addresses are looked up using nibble format under the
- IP6.ARPA domain (but see also the <option>-i</option>
- option).
+ IP6.ARPA domain.
</para>
</listitem>
</varlistentry>
}
isc_result_t
-get_reverse(char *reverse, size_t len, char *value, bool ip6_int,
- bool strict)
+get_reverse(char *reverse, size_t len, char *value, bool strict)
{
int r;
isc_result_t result;
dns_name_t *name;
unsigned int options = 0;
- if (ip6_int)
- options |= DNS_BYADDROPT_IPV6INT;
name = dns_fixedname_initname(&fname);
result = dns_byaddr_createptrname(&addr, options, name);
if (result != ISC_R_SUCCESS)
looknew->nsfound = 0;
looknew->tcp_mode = false;
looknew->tcp_mode_set = false;
- looknew->ip6_int = false;
looknew->comments = true;
looknew->stats = true;
looknew->section_question = true;
" -c specifies query class for non-IN data\n"
" -C compares SOA records on authoritative nameservers\n"
" -d is equivalent to -v\n"
-" -i IP6.INT reverse lookups\n"
" -l lists all hosts in a domain, using AXFR\n"
" -m set memory debugging flag (trace|record|usage)\n"
" -N changes the number of dots allowed before root lookup is done\n"
default_lookups = false;
break;
case 'i':
- lookup->ip6_int = true;
+ /* deprecated */
break;
case 'n':
/* deprecated */
check_ra = true;
lookup->pending = false;
- if (get_reverse(store, sizeof(store), hostname,
- lookup->ip6_int, true) == ISC_R_SUCCESS) {
+ if (get_reverse(store, sizeof(store), hostname, true)
+ == ISC_R_SUCCESS) {
strlcpy(lookup->textname, store, sizeof(lookup->textname));
lookup->rdtype = dns_rdatatype_ptr;
lookup->rdtypeset = true;
</listitem>
</varlistentry>
- <varlistentry>
- <term>-i</term>
- <listitem>
- <para>
- Obsolete.
- Use the IP6.INT domain for reverse lookups of IPv6
- addresses as defined in RFC1886 and deprecated in RFC4159.
- The default is to use IP6.ARPA as specified in RFC3596.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>-l</term>
<listitem>
trace_root, /*% initial query for either +trace or +nssearch */
tcp_mode,
tcp_mode_set,
- ip6_int,
comments,
stats,
section_question,
getaddresses(dig_lookup_t *lookup, const char *host, isc_result_t *resultp);
isc_result_t
-get_reverse(char *reverse, size_t len, char *value, bool ip6_int,
- bool strict);
+get_reverse(char *reverse, size_t len, char *value, bool strict);
ISC_PLATFORM_NORETURN_PRE void
fatal(const char *format, ...)
rdclass = dns_rdataclass_in;
}
lookup = make_empty_lookup();
- if (get_reverse(store, sizeof(store), opt, lookup->ip6_int, true)
+ if (get_reverse(store, sizeof(store), opt, true)
== ISC_R_SUCCESS) {
strlcpy(lookup->textname, store, sizeof(lookup->textname));
lookup->rdtype = dns_rdatatype_ptr;
struct query {
char textname[MXNAME]; /*% Name we're going to be looking up */
- bool ip6_int;
bool recurse;
bool have_aaonly;
bool have_adflag;
" local opt is one of:\n"
" -c class (specify query class)\n"
" -t type (specify query type)\n"
-" -i (use IP6.INT for IPv6 reverse lookups)\n"
" -x dot-notation (shortcut for reverse lookups)\n"
" +timeout=### (Set query timeout) [UDP=5,TCP=10]\n"
" +udptimeout=### (Set timeout before UDP retry)\n"
}
static void
-get_reverse(char *reverse, size_t len, const char *value,
- bool ip6_int)
+get_reverse(char *reverse, size_t len, const char *value)
{
int r;
isc_result_t result;
dns_name_t *name;
unsigned int options = 0;
- if (ip6_int)
- options |= DNS_BYADDROPT_IPV6INT;
name = dns_fixedname_initname(&fname);
result = dns_byaddr_createptrname(&addr, options, name);
CHECK("dns_byaddr_createptrname2", result);
exit(0);
break;
case 'i':
- query->ip6_int = true;
+ /* deprecated */
break;
case 'm':
/*
query->rdtype = rdtype;
return (value_from_next);
case 'x':
- get_reverse(textname, sizeof(textname), value, query->ip6_int);
+ get_reverse(textname, sizeof(textname), value);
strlcpy(query->textname, textname, sizeof(query->textname));
query->rdtype = dns_rdatatype_ptr;
query->rdclass = dns_rdataclass_in;
if (!is_batchfile) {
default_query.textname[0] = 0;
- default_query.ip6_int = false;
default_query.recurse = true;
default_query.have_aaonly = false;
default_query.have_adflag = true; /*XXX*/
a reverse lookup with the "PTR" query type.
</para>
- <para>
- The <option>-i</option> option sets the reverse domain for
- IPv6 addresses to IP6.INT.
- </para>
-
<para>
Reverse lookups — mapping addresses to names — are
simplified by the <option>-x</option> option.
query name like <literal>11.12.13.10.in-addr.arpa</literal> and
sets the query type and class to PTR and IN respectively.
By default, IPv6 addresses are looked up using nibble format
- under the IP6.ARPA domain. To use the older RFC1886 method
- using the IP6.INT domain specify the <option>-i</option> option.
+ under the IP6.ARPA domain.
</para>
<para>
unsigned int len;
REQUIRE(address != NULL);
+ UNUSED(options);
/*
* We create the text representation and then convert to a
*cp++ = '.';
}
remaining = sizeof(textname) - (cp - textname);
- if ((options & DNS_BYADDROPT_IPV6INT) != 0) {
- strlcpy(cp, "ip6.int.", remaining);
- } else {
- strlcpy(cp, "ip6.arpa.", remaining);
- }
+ strlcpy(cp, "ip6.arpa.", remaining);
} else
return (ISC_R_NOTIMPLEMENTED);
dns_namelist_t names;
} dns_byaddrevent_t;
-/*
- * This option is deprecated since we now only consider nibbles.
-#define DNS_BYADDROPT_IPV6NIBBLE 0x0001
- */
-/*% Note DNS_BYADDROPT_IPV6NIBBLE is now deprecated. */
-#define DNS_BYADDROPT_IPV6INT 0x0002
-
isc_result_t
dns_byaddr_create(isc_mem_t *mctx, const isc_netaddr_t *address,
dns_view_t *view, unsigned int options, isc_task_t *task,
* 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa.
* \endcode
*
- *\li #DNS_BYADDROPT_IPV6INT can be used to get nibble lookups under ip6.int.
- *
* Requires:
*
*\li 'mctx' is a valid mctx.