content-type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-RT-Original-Encoding: utf-8 Content-Length: 3974 Hi Evan. Sorry for sooo late response, but I had more priority work to do. Finally I have one new colleague Jakub Luzny helping me with nice-to-have things in BIND. Jakub reworked the patch and split it in two. First patch reworks the code for IDN, which enables us to add other IDN implementations easily. As part of this it also adds the support for GNU libidn. The second patch adds the libidn2 support. We split it away, because libidn2 does not support translation from punycode to Unicode. This is a problem, because the IDN domains are then showed in punycode in BIND tools output. Nevertheless we think that libidn2 support may be useful and needed by some people, since we have also request for this in Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1098783 On 13.06.2014 21:05, Evan Hunt via RT wrote: >> $ CHARSET=ASCII dig axfr . @k.root-servers.net | grep '^xn--' | wc -l >> 576 >> $ dig axfr . @k.root-servers.net | grep '^xn--' | wc -l >> 0 > > Ah you're right, that does work with IDN2003. I was testing the input > side: "dig straße.de", and that's not working. Here's what I'm seeing, > marked with (FAIL) where it didn't match expectations: > > No IDN support: > "dig straße.de" sends a query for "stra\195\159e.de." > "dig axfr ." contains xn-- names > > idnkit: > "dig straße.de" sends a query for "strasse.de" > "dig axfr ." contains names in non-ASCII charsets > > idnkit (with IDN_DISABLE): > "dig straße.de" sends a query for "stra\195\159e.de." > "dig axfr ." contains xn-- names Unfortunately I was not able to get idnkit working on Fedora, but I used your results for comparison. > GNU libidn: > "dig straße.de" sends a query for "strasse.de" > "dig axfr ." contains names in non-ASCII charsets Works the same way also in the current patch set. However I was not able to transfer the root zone. So if you can test this, it would be great. > GNU libidn (with CHARSET=ASCII): > "dig straße.de" fails (FAIL) sends query for "stra\195\159e.de." with (IDN_DISABLE defined) > "dig axfr ." contains xn-- names > > GNU libidn2: > "dig straße.de" sends a query for "xn--strae-oqa.de". works the same way > "dig axfr ." contains xn-- names (FAIL) I was not able to test this. > > GNU libidn2 (with LANG=en_US.ASCII): > "dig straße.de" fails (FAIL) sends query for "stra\195\159e.de." with (IDN_DISABLE defined) > "dig axfr ." contains xn-- names > > Note, something has gone wrong in configure with building idnkit; I > had to build it from an unpatched source tree. I'm not sure what exactly broke. The build fails for me with vanilla BIND and also with patched source. If you still see the issue, please send us some more information on what exactly is the problem. > It occurs to me that we could simplify things by checking for > IDN_DISABLE in dighost.c itself. Then we could have the same > documentation for all three libraries. (Though it might be worthwhile > to add some text explaining differences between IDN 2003 and 2008.) Jakub reworked the code in a way that only IDN_DISABLE is checked. > That still leaves the problem that libidn2 doesn't seem to be > working on the output side -- I only see xn-- names from libidn2, > regardless of environment. Right. I would not make it the default for this reason, however I think it would be beneficial to at least include it in the upstream source, so people wanting this may use IDN 2008 at least when doing queries. > Here's a diff showing the patch as I've modified it for ISC style > compatibility. Files that are automatically generated (man pages, > configure, config.h) have been omitted. (I thought it might be easier > if we're both working in the same code.) Thanks, I'm attaching two patches. Thank you! Regards, -- Tomas Hozza Software Engineer - EMEA ENG Developer Experience PGP: 1D9F3C2D UTC+2 (CEST) Red Hat Inc. http://cz.redhat.com