Commit 5dcc67a0 authored by Mark Andrews's avatar Mark Andrews
Browse files

2141. [bug] dig/host should not be setting IDN_ASCCHECK (IDN

                        equivalent of LDH checks).  [RT #16609]
parent 8363ddb3
2141. [bug] dig/host should not be setting IDN_ASCCHECK (IDN
equivalent of LDH checks). [RT #16609]
2140. [bug] libbind: missing unlock on pthread_key_create()
failures. [RT #16654]
......
......@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dighost.c,v 1.299 2007/02/14 23:45:44 marka Exp $ */
/* $Id: dighost.c,v 1.300 2007/02/26 00:27:09 marka Exp $ */
/*! \file
* \note
......@@ -144,6 +144,7 @@ static idn_result_t append_textname(char *name, const char *origin,
static void idn_check_result(idn_result_t r, const char *msg);
#define MAXDLEN 256
int idnoptions = 0;
#endif
/*%
......@@ -1816,7 +1817,7 @@ setup_lookup(dig_lookup_t *lookup) {
sizeof(utf8_textname));
idn_check_result(mr, "append origin to textname");
}
mr = idn_encodename(IDN_LOCALMAP | IDN_NAMEPREP | IDN_ASCCHECK |
mr = idn_encodename(idnoptions | IDN_LOCALMAP | IDN_NAMEPREP |
IDN_IDNCONV | IDN_LENCHECK, utf8_textname,
idn_textname, sizeof(idn_textname));
idn_check_result(mr, "convert UTF-8 textname to IDN encoding");
......
......@@ -15,13 +15,25 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: host.c,v 1.110 2006/05/23 04:38:28 marka Exp $ */
/* $Id: host.c,v 1.111 2007/02/26 00:27:09 marka Exp $ */
/*! \file */
#include <config.h>
#include <stdlib.h>
#include <limits.h>
#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif
#ifdef WITH_IDN
#include <idn/result.h>
#include <idn/log.h>
#include <idn/resconf.h>
#include <idn/api.h>
#endif
#include <isc/app.h>
#include <isc/commandline.h>
#include <isc/netaddr.h>
......@@ -664,6 +676,9 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
lookup->rdtype != dns_rdatatype_axfr)
lookup->rdtype = rdtype;
lookup->rdtypeset = ISC_TRUE;
#ifdef WITH_IDN
idnoptions = 0;
#endif
if (rdtype == dns_rdatatype_axfr) {
/* -l -t any -v */
list_type = dns_rdatatype_any;
......@@ -672,6 +687,13 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
} else if (rdtype == dns_rdatatype_ixfr) {
lookup->ixfr_serial = serial;
list_type = rdtype;
#ifdef WITH_IDN
} else if (rdtype == dns_rdatatype_a ||
rdtype == dns_rdatatype_aaaa ||
rdtype == dns_rdatatype_mx) {
idnoptions = IDN_ASCCHECK;
list_type = rdtype;
#endif
} else
list_type = rdtype;
list_addresses = ISC_FALSE;
......@@ -814,6 +836,9 @@ main(int argc, char **argv) {
ISC_LIST_INIT(search_list);
fatalexit = 1;
#ifdef WITH_IDN
idnoptions = IDN_ASCCHECK;
#endif
debug("main()");
progname = argv[0];
......
......@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dig.h,v 1.101 2006/12/07 05:52:16 marka Exp $ */
/* $Id: dig.h,v 1.102 2007/02/26 00:27:09 marka Exp $ */
#ifndef DIG_H
#define DIG_H
......@@ -277,6 +277,9 @@ extern isc_boolean_t debugging, memdebugging;
extern char *progname;
extern int tries;
extern int fatalexit;
#ifdef WITH_IDN
extern int idnoptions;
#endif
/*
* Routines in dighost.c.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment