]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/resolve/resolved-manager.c
resolved: support libidn2 in addition to libidn
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 10 May 2017 01:56:34 +0000 (21:56 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 11 May 2017 18:25:01 +0000 (14:25 -0400)
commit87057e244b4d2e723dc98b2b3cef1901c155f005
treec7505157bfa7609a15700082336e4f04311243cd
parent9bfc0df113edd50bd01acba02a42f2a13db83d71
resolved: support libidn2 in addition to libidn

libidn2 2.0.0 supports IDNA2008, in contrast to libidn which supports IDNA2003.

https://bugzilla.redhat.com/show_bug.cgi?id=1449145
From that bug report:

Internationalized domain names exist for quite some time (IDNA2003), although
the protocols describing them have evolved in an incompatible way (IDNA2008).
These incompatibilities will prevent applications written for IDNA2003 to
access certain problematic domain names defined with IDNA2008, e.g., faß.de is
translated to domain xn--fa-hia.de with IDNA2008, while in IDNA2003 it is
translated to fass.de domain. That not only causes incompatibility problems,
but may be used as an attack vector to redirect users to different web sites.

v2:
- keep libidn support
- require libidn2 >= 2.0.0
v3:
- keep dns_name_apply_idna caller dumb, and keep the #ifdefs inside of the
  function.
- use both ±IDN and ±IDN2 in the version string
12 files changed:
Makefile.am
README
configure.ac
meson.build
meson_options.txt
src/basic/build.h
src/resolve/resolved-dns-question.c
src/resolve/resolved-manager.c
src/resolve/test-dnssec-complex.c
src/shared/dns-domain.c
src/shared/dns-domain.h
src/test/test-dns-domain.c