summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/httpserver/qhttpserverrequest.cpp2
-rw-r--r--src/httpserver/qhttpserverrequest.h6
-rw-r--r--tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp9
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