summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/websockets/qwebsocketserver.cpp96
-rw-r--r--src/websockets/qwebsocketserver.h14
-rw-r--r--tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp13
3 files changed, 120 insertions, 3 deletions
diff --git a/src/websockets/qwebsocketserver.cpp b/src/websockets/qwebsocketserver.cpp
index 7368596..7790250 100644
--- a/src/websockets/qwebsocketserver.cpp
+++ b/src/websockets/qwebsocketserver.cpp
@@ -574,6 +574,7 @@ void QWebSocketServer::setMaxPendingConnections(int numConnections)
d->setMaxPendingConnections(numConnections);
}
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
/*!
Sets the socket descriptor this server should use when listening for incoming connections to
\a socketDescriptor.
@@ -582,8 +583,9 @@ void QWebSocketServer::setMaxPendingConnections(int numConnections)
The socket is assumed to be in listening state.
\sa socketDescriptor(), isListening()
+ \since 5.3
*/
-bool QWebSocketServer::setSocketDescriptor(int socketDescriptor)
+bool QWebSocketServer::setSocketDescriptor(qintptr socketDescriptor)
{
Q_D(QWebSocketServer);
return d->setSocketDescriptor(socketDescriptor);
@@ -596,12 +598,104 @@ bool QWebSocketServer::setSocketDescriptor(int socketDescriptor)
native socket functions.
\sa setSocketDescriptor(), isListening()
+ \since 5.3
+ */
+qintptr QWebSocketServer::socketDescriptor() const
+{
+ Q_D(const QWebSocketServer);
+ return d->socketDescriptor();
+}
+
+/*!
+ \fn QWebSocketServer::nativeDescriptor
+ \deprecated
+
+ Returns the native socket descriptor the server uses to listen for incoming instructions,
+ or -1 if the server is not listening.
+ If the server is using QNetworkProxy, the returned descriptor may not be usable with
+ native socket functions.
+
+ \sa socketDescriptor(), setSocketDescriptor(), setNativeDescriptor(), isListening()
+ \since 5.12
+ */
+/*!
+ \fn QWebSocketServer::setNativeDescriptor
+ \deprecated
+
+ Sets the socket descriptor this server should use when listening for incoming connections to
+ \a socketDescriptor.
+
+ Returns true if the socket is set successfully; otherwise returns false.
+ The socket is assumed to be in listening state.
+
+ \sa socketDescriptor(), setSocketDescriptor(), nativeDescriptor(), isListening()
+ \since 5.12
+ */
+#else // ### Qt 6: Remove leftovers
+/*!
+ \deprecated
+
+ Sets the socket descriptor this server should use when listening for incoming connections to
+ \a socketDescriptor.
+
+ Returns true if the socket is set successfully; otherwise returns false.
+ The socket is assumed to be in listening state.
+
+ \sa socketDescriptor(), setSocketDescriptor(), nativeDescriptor(), isListening()
+ \since 5.3
+ */
+bool QWebSocketServer::setSocketDescriptor(int socketDescriptor)
+{
+ return setNativeDescriptor(socketDescriptor);
+}
+
+/*!
+ \deprecated
+
+ Returns the native socket descriptor the server uses to listen for incoming instructions,
+ or -1 if the server is not listening.
+ If the server is using QNetworkProxy, the returned descriptor may not be usable with
+ native socket functions.
+
+ \sa nativeDescriptor(), setNativeDescriptor(), setSocketDescriptor(), isListening()
+ \since 5.3
*/
int QWebSocketServer::socketDescriptor() const
{
+ return int(nativeDescriptor());
+}
+
+/*!
+ Sets the socket descriptor this server should use when listening for incoming connections to
+ \a socketDescriptor.
+
+ Returns true if the socket is set successfully; otherwise returns false.
+ The socket is assumed to be in listening state.
+
+ \sa nativeDescriptor(), isListening()
+ \since 5.12
+ */
+bool QWebSocketServer::setNativeDescriptor(qintptr socketDescriptor)
+{
+ Q_D(QWebSocketServer);
+ return d->setSocketDescriptor(socketDescriptor);
+}
+
+/*!
+ Returns the native socket descriptor the server uses to listen for incoming instructions,
+ or -1 if the server is not listening.
+ If the server is using QNetworkProxy, the returned descriptor may not be usable with
+ native socket functions.
+
+ \sa setNativeDescriptor(), isListening()
+ \since 5.12
+ */
+qintptr QWebSocketServer::nativeDescriptor() const
+{
Q_D(const QWebSocketServer);
return d->socketDescriptor();
}
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
/*!
Returns a list of WebSocket versions that this server is supporting.
diff --git a/src/websockets/qwebsocketserver.h b/src/websockets/qwebsocketserver.h
index 890f2d6..17d5376 100644
--- a/src/websockets/qwebsocketserver.h
+++ b/src/websockets/qwebsocketserver.h
@@ -92,8 +92,18 @@ public:
SslMode secureMode() const;
- bool setSocketDescriptor(int socketDescriptor);
- int socketDescriptor() const;
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+ bool setSocketDescriptor(qintptr socketDescriptor);
+ qintptr socketDescriptor() const;
+ bool setNativeDescriptor(qintptr descriptor) { return setSocketDescriptor(descriptor); }
+ qintptr nativeDescriptor() const { return socketDescriptor(); }
+#else // ### Qt 6: Remove leftovers
+ Q_DECL_DEPRECATED_X("Use setNativeDescriptor") bool setSocketDescriptor(int socketDescriptor);
+ Q_DECL_DEPRECATED_X("Use nativeDescriptor") int socketDescriptor() const;
+ bool setNativeDescriptor(qintptr descriptor);
+ qintptr nativeDescriptor() const;
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+
bool hasPendingConnections() const;
virtual QWebSocket *nextPendingConnection();
diff --git a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
index a2f3c15..2f17619 100644
--- a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
+++ b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
@@ -191,7 +191,11 @@ void tst_QWebSocketServer::tst_initialisation()
QCOMPARE(server.maxPendingConnections(), 30);
QCOMPARE(server.serverPort(), quint16(0));
QCOMPARE(server.serverAddress(), QHostAddress());
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QCOMPARE(server.socketDescriptor(), -1);
+#else // ### Qt 6: Remove leftovers
+ QCOMPARE(server.nativeDescriptor(), -1);
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QVERIFY(!server.hasPendingConnections());
QVERIFY(!server.nextPendingConnection());
QCOMPARE(server.error(), QWebSocketProtocol::CloseCodeNormal);
@@ -216,7 +220,11 @@ void tst_QWebSocketServer::tst_initialisation()
QCOMPARE(server.maxPendingConnections(), 30);
QCOMPARE(server.serverPort(), quint16(0));
QCOMPARE(server.serverAddress(), QHostAddress());
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QCOMPARE(server.socketDescriptor(), -1);
+#else // ### Qt 6: Remove leftovers
+ QCOMPARE(server.nativeDescriptor(), -1);
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QVERIFY(!server.hasPendingConnections());
QVERIFY(!server.nextPendingConnection());
QCOMPARE(server.error(), QWebSocketProtocol::CloseCodeNormal);
@@ -252,8 +260,13 @@ void tst_QWebSocketServer::tst_settersAndGetters()
server.setMaxPendingConnections(INT_MAX);
QCOMPARE(server.maxPendingConnections(), INT_MAX);
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QVERIFY(!server.setSocketDescriptor(-2));
QCOMPARE(server.socketDescriptor(), -1);
+#else // ### Qt 6: Remove leftovers
+ QVERIFY(!server.setNativeDescriptor(-2));
+ QCOMPARE(server.nativeDescriptor(), -1);
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
server.setServerName(QStringLiteral("Qt WebSocketServer"));
QCOMPARE(server.serverName(), QStringLiteral("Qt WebSocketServer"));