de-virtualize QAbstractSocket methods and use proper type

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2024-03-15 03:10:15 +02:00
parent f9fd964063
commit c3b1805ef6
3 changed files with 15 additions and 18 deletions

View file

@ -1298,23 +1298,23 @@ bool QAbstractSocket::setSocketDescriptor(int socketDescriptor, SocketState sock
\sa socketOption()
*/
void QAbstractSocket::setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value)
void QAbstractSocket::setSocketOption(QAbstractSocket::SocketOption option, const int value)
{
if (!d_func()->socketEngine)
return;
switch (option) {
case LowDelayOption:
d_func()->socketEngine->setOption(QAbstractSocketEngine::LowDelayOption, value.toInt());
d_func()->socketEngine->setOption(QAbstractSocketEngine::LowDelayOption, value);
break;
case KeepAliveOption:
d_func()->socketEngine->setOption(QAbstractSocketEngine::KeepAliveOption, value.toInt());
d_func()->socketEngine->setOption(QAbstractSocketEngine::KeepAliveOption, value);
break;
case MulticastTtlOption:
d_func()->socketEngine->setOption(QAbstractSocketEngine::MulticastTtlOption, value.toInt());
d_func()->socketEngine->setOption(QAbstractSocketEngine::MulticastTtlOption, value);
break;
case MulticastLoopbackOption:
d_func()->socketEngine->setOption(QAbstractSocketEngine::MulticastLoopbackOption, value.toInt());
d_func()->socketEngine->setOption(QAbstractSocketEngine::MulticastLoopbackOption, value);
break;
}
}
@ -1325,12 +1325,12 @@ void QAbstractSocket::setSocketOption(QAbstractSocket::SocketOption option, cons
\sa setSocketOption()
*/
QVariant QAbstractSocket::socketOption(QAbstractSocket::SocketOption option)
int QAbstractSocket::socketOption(QAbstractSocket::SocketOption option)
{
if (!d_func()->socketEngine)
return QVariant();
int ret = -1;
if (!d_func()->socketEngine)
return ret;
switch (option) {
case LowDelayOption:
ret = d_func()->socketEngine->option(QAbstractSocketEngine::LowDelayOption);
@ -1345,10 +1345,7 @@ QVariant QAbstractSocket::socketOption(QAbstractSocket::SocketOption option)
ret = d_func()->socketEngine->option(QAbstractSocketEngine::MulticastLoopbackOption);
break;
}
if (ret == -1)
return QVariant();
else
return QVariant(ret);
return ret;
}
/*!

View file

@ -109,8 +109,8 @@ public:
virtual bool setSocketDescriptor(int socketDescriptor, SocketState state = ConnectedState,
OpenMode openMode = ReadWrite);
virtual void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value);
virtual QVariant socketOption(QAbstractSocket::SocketOption option);
void setSocketOption(QAbstractSocket::SocketOption option, const int value);
int socketOption(QAbstractSocket::SocketOption option);
SocketType socketType() const;
SocketState state() const;

View file

@ -103,7 +103,7 @@ void tst_QIODevice::constructing_QTcpSocket()
socket.connectToHost(QtNetworkSettings::serverName(), 80);
QVERIFY(socket.waitForConnected(30000));
QVERIFY(device->isOpen());
socket.setSocketOption(QAbstractSocket::KeepAliveOption, true);
socket.setSocketOption(QAbstractSocket::KeepAliveOption, 1);
while (!device->canReadLine()) {
QEXPECT_FAIL("", "Host may close connection or resolve address to unreachable", Abort);
@ -120,7 +120,7 @@ void tst_QIODevice::constructing_QTcpSocket()
socket.connectToHost(QtNetworkSettings::serverName(), 80);
QVERIFY(socket.waitForConnected(30000));
QVERIFY(device->isOpen());
socket.setSocketOption(QAbstractSocket::KeepAliveOption, true);
socket.setSocketOption(QAbstractSocket::KeepAliveOption, 1);
while (!device->canReadLine()) {
QEXPECT_FAIL("", "Host may close connection or resolve address to unreachable", Abort);
@ -261,7 +261,7 @@ void tst_QIODevice::unget()
} else {
socket.connectToHost(QtNetworkSettings::serverName(), 80);
QVERIFY(socket.waitForConnected(30000));
socket.setSocketOption(QAbstractSocket::KeepAliveOption, true);
socket.setSocketOption(QAbstractSocket::KeepAliveOption, 1);
socket.write("GET / HTTP/1.0\r\n\r\n");
QVERIFY(socket.waitForReadyRead());
dev = &socket;