diff options
author | Mikhail Svetkin <mikhail.svetkin@qt.io> | 2018-07-18 12:47:52 +0200 |
---|---|---|
committer | Mikhail Svetkin <mikhail.svetkin@qt.io> | 2018-07-18 11:03:33 +0000 |
commit | cccece0a61ddcf9c9e09fccbb55159492a3fef3c (patch) | |
tree | 101ced40c75274192de40b3f4849f029bee0d2b8 | |
parent | 8eb367861602bd0106b05550baf0decccd989fb6 (diff) |
Fix inccorect parsing url with spaces
Change-Id: I942bd80cf3cefaa9f0194ce3281640a3b5077ed2
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
-rw-r--r-- | src/httpserver/qhttpserverrequest.cpp | 3 | ||||
-rw-r--r-- | tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp | 2 |
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() |