QAbstractSocket: virtualize options setting
Some kinds of socket options can be applied only to newly created descriptors. However, a current QAbstractSocket implementation proceeds to actions immediately after the socket layer initialization. This disallows a socket tuning in further inheritance. Add a private virtual configureCreatedSocket() method that gives an ability to set the socket options before binding or connecting. Change-Id: I2d858a400cd46ae7fe5bf0b8900220f6121d0132 Reviewed-by: Richard J. Moore <rich@kde.org>
This commit is contained in:
parent
1e01be433d
commit
3610513450
@ -650,6 +650,8 @@ bool QAbstractSocketPrivate::initSocketLayer(QAbstractSocket::NetworkLayerProtoc
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configureCreatedSocket();
|
||||||
|
|
||||||
if (threadData->hasEventDispatcher())
|
if (threadData->hasEventDispatcher())
|
||||||
socketEngine->setReceiver(this);
|
socketEngine->setReceiver(this);
|
||||||
|
|
||||||
@ -660,6 +662,12 @@ bool QAbstractSocketPrivate::initSocketLayer(QAbstractSocket::NetworkLayerProtoc
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! \internal
|
||||||
|
*/
|
||||||
|
void QAbstractSocketPrivate::configureCreatedSocket()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/*! \internal
|
/*! \internal
|
||||||
|
|
||||||
Slot connected to the read socket notifier. This slot is called
|
Slot connected to the read socket notifier. This slot is called
|
||||||
|
@ -130,6 +130,7 @@ public:
|
|||||||
bool flush();
|
bool flush();
|
||||||
|
|
||||||
bool initSocketLayer(QAbstractSocket::NetworkLayerProtocol protocol);
|
bool initSocketLayer(QAbstractSocket::NetworkLayerProtocol protocol);
|
||||||
|
virtual void configureCreatedSocket();
|
||||||
void startConnectingByName(const QString &host);
|
void startConnectingByName(const QString &host);
|
||||||
void fetchConnectionParameters();
|
void fetchConnectionParameters();
|
||||||
void setupSocketNotifiers();
|
void setupSocketNotifiers();
|
||||||
|
Loading…
Reference in New Issue
Block a user