--===============0772087626== Content-Type: multipart/signed; boundary="nextPart1245854.cjKeDd4Q7l"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit --nextPart1245854.cjKeDd4Q7l Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Jakub Stachowski wrote: >For the last month I have been working on DNS based service discovery >(ZeroConf, Rendezvous) for KDE. You can get it from kdenonbeta/kdnssd. I have an additional question regarding mDNS and you may be able to answer= =20 it: how does it handle IDN domains? In specific, ACE-encoded ones. Our current resolver code uses Unicode for input and will perform the=20 necessary conversions to ACE. mDNS, on the other hand, specifies (quote) * uses UTF-8, and only UTF-8, to encode resource record names =20 and also says that mDNS should respect normal uppercase/lowercase rules. I ask that because our current code (in KURL nonetheless) relies on the fac= t=20 that ACE-encoded names are equivalent to their full-blown Unicode=20 counterparts. So, what happens if: a) an ACE-encoded hostname is queried in mDNS? (tentative answer: it's treated as if it were different from the non-encode= d=20 form) b) a hostname whose case-folding, as per Nameprep (RFC 3491), matches an=20 existing record? (tentative answer: it is considered equivalent) Examples: 1) original: Thiago-Jos=C3=A9-Macieira.local lowercased/case folded: thiago-jos=C3=A9-macieira.local ACE-encoded: xn--thiago-jos-macieira-kzb.local the first two match in mDNS; the third matches only in DNS. 2) original: =C2=B5processor.local lowercased: =C2=B5processor.local case-folded: =CE=BCprocessor.local (note that's a mu, not a micro) also equivalent: =CE=9Cprocessor.local (that's also a mu) ACE-encoded: xn--processor-u0g.local same thing: all but the last must match in all cases; the last one only in= =20 DNS. 3) original: fu=C3=9Fball.local lowercased: fu=C3=9Fball.local case-folded: fussball.local ACE-encoded: fussball.local (the same thing would happen for =C5=BFs -> ss) here everything matches, but only because the case-folding rendered it into= =20 ASCII =2D-=20 Thiago Macieira - Registered Linux user #65028 thiago (AT) macieira (DOT) info ICQ UIN: 1967141 PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 --nextPart1245854.cjKeDd4Q7l Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) iD8DBQBBgC7FM/XwBW70U1gRAmHBAKCLdveGnvwt7Tm+WbzJs/rD6Bc0OgCgjrUG RA6oKRSSe6gax1kVU0u5icM= =LDqy -----END PGP SIGNATURE----- --nextPart1245854.cjKeDd4Q7l-- --===============0772087626== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe << --===============0772087626==--