diff options
author | David Faure <faure@kde.org> | 2009-10-12 21:22:54 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2009-10-13 08:20:52 (GMT) |
commit | fc5e8bb849232cce27d5f53491cd01628abad760 (patch) | |
tree | 6ead54ff7dfb38ff3b1123a1a35db89f8f1c15b9 | |
parent | 2d2e422107a93a2a84ba74399678496619329e58 (diff) | |
download | Qt-fc5e8bb849232cce27d5f53491cd01628abad760.zip Qt-fc5e8bb849232cce27d5f53491cd01628abad760.tar.gz Qt-fc5e8bb849232cce27d5f53491cd01628abad760.tar.bz2 |
Fix QUrl regression with setHost("::ffff:129.144.52.38")
toEncoded was returning an empty host instead of [::ffff:129.144.52.38]
Merge-request: 1735
Reviewed-by: Olivier Goffart <ogoffart@trolltech.com>
-rw-r--r-- | src/corelib/io/qurl.cpp | 9 | ||||
-rw-r--r-- | tests/auto/qurl/tst_qurl.cpp | 8 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 22d0019..6001d9d 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -3874,10 +3874,15 @@ QByteArray QUrlPrivate::toEncoded(QUrl::FormattingOptions options) const } } - if (host.startsWith(QLatin1Char('['))) + if (host.startsWith(QLatin1Char('['))) { url += host.toLatin1(); - else + } else if (host.contains(QLatin1Char(':'))) { + url += '['; + url += host.toLatin1(); + url += ']'; + } else { url += QUrl::toAce(host); + } if (!(options & QUrl::RemovePort) && port != -1) { url += ':'; url += QString::number(port).toAscii(); diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp index 026c30e..72c13bf 100644 --- a/tests/auto/qurl/tst_qurl.cpp +++ b/tests/auto/qurl/tst_qurl.cpp @@ -137,6 +137,7 @@ private slots: void ipv6(); void ipv6_2_data(); void ipv6_2(); + void moreIpv6(); void toPercentEncoding_data(); void toPercentEncoding(); void isRelative_data(); @@ -2276,6 +2277,13 @@ void tst_QUrl::ipv6_2() QCOMPARE(url.toString(), output); } +void tst_QUrl::moreIpv6() +{ + QUrl waba1("http://www.kde.org/cgi/test.cgi"); + waba1.setHost("::ffff:129.144.52.38"); + QCOMPARE(QString::fromLatin1(waba1.toEncoded()), QString::fromLatin1("http://[::ffff:129.144.52.38]/cgi/test.cgi")); +} + void tst_QUrl::punycode_data() { QTest::addColumn<QString>("original"); |