From f30cbcac11f5a627992f0c48cff91135808fa70f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20R=C3=BChsen?= Date: Fri, 13 Jan 2017 09:36:33 +0100 Subject: [PATCH] IDN: Use TR46 'transitional' for toASCII translations References: http://unicode.org/faq/idn.html http://unicode.org/reports/tr46 Closes #1206 --- lib/url.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/url.c b/lib/url.c index c7a91a4f7c..29beb38535 100644 --- a/lib/url.c +++ b/lib/url.c @@ -4010,7 +4010,12 @@ static void fix_hostname(struct connectdata *conn, struct hostname *host) #ifdef USE_LIBIDN2 if(idn2_check_version(IDN2_VERSION)) { char *ace_hostname = NULL; - int rc = idn2_lookup_ul((const char *)host->name, &ace_hostname, 0); +#ifdef IDN2_TRANSITIONAL + int flags = IDN2_NFC_INPUT | IDN2_TRANSITIONAL; +#else + int flags = IDN2_NFC_INPUT; +#endif + int rc = idn2_lookup_ul((const char *)host->name, &ace_hostname, flags); if(rc == IDN2_OK) { host->encalloc = (char *)ace_hostname; /* change the name pointer to point to the encoded hostname */