diff --git a/src/websockets/qwebsocketserver.cpp b/src/websockets/qwebsocketserver.cpp index 7368596a8d8d8d00b2c1a94f9236f7f7ef1200b3..7790250eca53af63ab8760214485143c6fdb67b9 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 890f2d68ce1c41acc2e9c23fb26bf3b20ed258d2..17d53762658fc1c024be4d9e1367f1bf67e5380c 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 a2f3c150ade6a000469c77df8bcd551ab433fa5c..2f1761937ac6a0c2c1a88179d2bdbfd4d8fafadc 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"));