diff options
-rw-r--r-- | src/httpserver/qhttpserverrequest.cpp | 2 | ||||
-rw-r--r-- | src/httpserver/qhttpserverrequest.h | 6 | ||||
-rw-r--r-- | tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp | 9 |
3 files changed, 14 insertions, 3 deletions
diff --git a/src/httpserver/qhttpserverrequest.cpp b/src/httpserver/qhttpserverrequest.cpp index 20c2821..5c0ac5f 100644 --- a/src/httpserver/qhttpserverrequest.cpp +++ b/src/httpserver/qhttpserverrequest.cpp @@ -291,6 +291,8 @@ QHttpServerRequest::Method QHttpServerRequest::method() const return QHttpServerRequest::Method::Options; case HTTP_PATCH: return QHttpServerRequest::Method::Patch; + case HTTP_CONNECT: + return QHttpServerRequest::Method::Connect; default: return QHttpServerRequest::Method::Unknown; } diff --git a/src/httpserver/qhttpserverrequest.h b/src/httpserver/qhttpserverrequest.h index ea4fc7f..4ace46a 100644 --- a/src/httpserver/qhttpserverrequest.h +++ b/src/httpserver/qhttpserverrequest.h @@ -65,8 +65,9 @@ public: Head = 0x0010, Options = 0x0020, Patch = 0x0040, + Connect = 0x0080, - All = Get | Put | Delete | Post | Head | Options | Patch, + All = Get | Put | Delete | Post | Head | Options | Patch | Connect, // Include upper-case aliases for the sake of parsing from strings: GET = Get, @@ -75,7 +76,8 @@ public: POST = Post, HEAD = Head, OPTIONS = Options, - PATCH = Patch + PATCH = Patch, + CONNECT = Connect }; Q_ENUM(Method) Q_DECLARE_FLAGS(Methods, Method) diff --git a/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp b/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp index 912a7a6..d8dc0ef 100644 --- a/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp +++ b/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp @@ -252,7 +252,12 @@ void tst_QAbstractHttpServer::qtbug82053() { struct HttpServer : QAbstractHttpServer { - bool handleRequest(const QHttpServerRequest &, QTcpSocket *) override { return false; } + bool wasConnectRequest{false}; + bool handleRequest(const QHttpServerRequest &req, QTcpSocket *) override + { + wasConnectRequest = (req.method() == QHttpServerRequest::Method::Connect); + return false; + } } server; auto tcpServer = new QTcpServer; tcpServer->listen(); @@ -264,6 +269,8 @@ void tst_QAbstractHttpServer::qtbug82053() client.write("CONNECT / HTTP/1.1\n\n"); client.waitForBytesWritten(); QTest::qWait(0); + QCOMPARE(client.state(), QAbstractSocket::ConnectedState); + QTRY_VERIFY(server.wasConnectRequest); } QT_END_NAMESPACE |