summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Svetkin <mikhail.svetkin@qt.io>2018-07-18 12:47:52 +0200
committerMikhail Svetkin <mikhail.svetkin@qt.io>2018-07-18 11:03:33 +0000
commitcccece0a61ddcf9c9e09fccbb55159492a3fef3c (patch)
tree101ced40c75274192de40b3f4849f029bee0d2b8
parent8eb367861602bd0106b05550baf0decccd989fb6 (diff)
Fix inccorect parsing url with spaces
Change-Id: I942bd80cf3cefaa9f0194ce3281640a3b5077ed2 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
-rw-r--r--src/httpserver/qhttpserverrequest.cpp3
-rw-r--r--tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/httpserver/qhttpserverrequest.cpp b/src/httpserver/qhttpserverrequest.cpp
index ce9cb80..41f4cf2 100644
--- a/src/httpserver/qhttpserverrequest.cpp
+++ b/src/httpserver/qhttpserverrequest.cpp
@@ -132,7 +132,8 @@ bool QHttpServerRequestPrivate::parseUrl(const char *at, size_t length, bool con
{ UF_SCHEMA, [](const QString &string, QUrl *url) { url->setScheme(string); } },
{ UF_HOST, [](const QString &string, QUrl *url) { url->setHost(string); } },
{ UF_PORT, [](const QString &string, QUrl *url) { url->setPort(string.toInt()); } },
- { UF_PATH, [](const QString &string, QUrl *url) { url->setPath(string); } },
+ { UF_PATH,
+ [](const QString &string, QUrl *url) { url->setPath(string, QUrl::TolerantMode); } },
{ UF_QUERY, [](const QString &string, QUrl *url) { url->setQuery(string); } },
{ UF_FRAGMENT, [](const QString &string, QUrl *url) { url->setFragment(string); } },
{ UF_USERINFO, [](const QString &string, QUrl *url) { url->setUserInfo(string); } },
diff --git a/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp b/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp
index c470a71..7c142db 100644
--- a/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp
+++ b/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp
@@ -80,6 +80,8 @@ void tst_QAbstractHttpServer::request_data()
QTest::addRow("0.0.0.0") << "0.0.0.0" << "/" << QString();
QTest::addRow("localhost") << "localhost" << "/" << QString();
QTest::addRow("localhost with query") << "localhost" << "/" << QString("key=value");
+ QTest::addRow("0.0.0.0 path with spaces") << "0.0.0.0" << "/test test" << QString();
+ QTest::addRow("0.0.0.0 path with spec spaces") << "0.0.0.0" << "/test%20test" << QString();
}
void tst_QAbstractHttpServer::request()