summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qurl.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2009-03-19 14:43:41 +0100
committerThiago Macieira <thiago.macieira@nokia.com>2009-07-21 15:48:46 +0200
commit4c64137c6dfbfcc5a6fecbb04f5159ec491842e1 (patch)
tree48fc8e532b387d9b9bfecb6ea6658910366e1db6 /src/corelib/io/qurl.cpp
parent8e6293712a9126c2740bf5628e02325d04721b2e (diff)
Fix bug in locating non-lowercase TLDs: must lowercase.
Use qt_nameprep after all since it's extremely fast for ASCII only and it does in-place replacement.
Diffstat (limited to 'src/corelib/io/qurl.cpp')
-rw-r--r--src/corelib/io/qurl.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index fe3ad82663..78e314e683 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -3174,11 +3174,15 @@ static bool qt_is_idn_enabled(const QString &domain)
int idx = domain.lastIndexOf(QLatin1Char('.'));
if (idx == -1)
return false;
- const QChar *tld = domain.constData() + idx + 1;
+
int len = domain.size() - idx - 1;
+ QString tldString(domain.constData() + idx + 1, len);
+ qt_nameprep(&tldString, 0);
+
+ const QChar *tld = tldString.constData();
if (user_idn_whitelist)
- return user_idn_whitelist->contains(QString::fromRawData(tld, len).toLower());
+ return user_idn_whitelist->contains(tldString);
int l = 0;
int r = sizeof(idn_whitelist)/sizeof(const char *) - 1;