Commit 09ce307b authored by Simon Kelley's avatar Simon Kelley

Disable libIDN2 underscore workaround with libIDN or fixed libIDN2.

parent a3303e19
...@@ -200,18 +200,20 @@ char *canonicalise(char *in, int *nomem) ...@@ -200,18 +200,20 @@ char *canonicalise(char *in, int *nomem)
if (!(rc = check_name(in))) if (!(rc = check_name(in)))
return NULL; return NULL;
#if defined(HAVE_IDN) || defined(HAVE_LIBIDN2) #if defined(HAVE_LIBIDN2) && (!defined(IDN2_VERSION_NUMBER) || IDN2_VERSION_NUMBER < 0x02000003)
/* libidn2 strips underscores, so don't do IDN processing /* older libidn2 strips underscores, so don't do IDN processing
if the name has an underscore (check_name() returned 2) */ if the name has an underscore (check_name() returned 2) */
if (rc != 2) if (rc != 2)
#endif
#if defined(HAVE_IDN) || defined(HAVE_LIBIDN2)
{ {
#ifdef HAVE_LIBIDN2 # ifdef HAVE_LIBIDN2
rc = idn2_to_ascii_lz(in, &ret, IDN2_NONTRANSITIONAL); rc = idn2_to_ascii_lz(in, &ret, IDN2_NONTRANSITIONAL);
if (rc == IDN2_DISALLOWED) if (rc == IDN2_DISALLOWED)
rc = idn2_to_ascii_lz(in, &ret, IDN2_TRANSITIONAL); rc = idn2_to_ascii_lz(in, &ret, IDN2_TRANSITIONAL);
#else # else
rc = idna_to_ascii_lz(in, &ret, 0); rc = idna_to_ascii_lz(in, &ret, 0);
#endif # endif
if (rc != IDNA_SUCCESS) if (rc != IDNA_SUCCESS)
{ {
if (ret) if (ret)
......
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