mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 18:50:00 +02:00
Merge pull request #3279 from birarda/buffer-fix
change both send and receive socket buffers
This commit is contained in:
commit
f3576a74d0
2 changed files with 19 additions and 11 deletions
|
@ -82,8 +82,8 @@ LimitedNodeList::LimitedNodeList(unsigned short socketListenPort, unsigned short
|
||||||
qDebug() << "NodeList DTLS socket is listening on" << _dtlsSocket->localPort();
|
qDebug() << "NodeList DTLS socket is listening on" << _dtlsSocket->localPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
const int LARGER_SNDBUF_SIZE = 1048576;
|
const int LARGER_BUFFER_SIZE = 1048576;
|
||||||
changeSendSocketBufferSize(LARGER_SNDBUF_SIZE);
|
changeSocketBufferSizes(LARGER_BUFFER_SIZE);
|
||||||
|
|
||||||
_packetStatTimer.start();
|
_packetStatTimer.start();
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ QUdpSocket& LimitedNodeList::getDTLSSocket() {
|
||||||
return *_dtlsSocket;
|
return *_dtlsSocket;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimitedNodeList::changeSendSocketBufferSize(int numSendBytes) {
|
void LimitedNodeList::changeSocketBufferSizes(int numBytes) {
|
||||||
// change the socket send buffer size to be 1MB
|
// change the socket send buffer size to be 1MB
|
||||||
int oldBufferSize = 0;
|
int oldBufferSize = 0;
|
||||||
|
|
||||||
|
@ -139,15 +139,23 @@ void LimitedNodeList::changeSendSocketBufferSize(int numSendBytes) {
|
||||||
unsigned int sizeOfInt = sizeof(oldBufferSize);
|
unsigned int sizeOfInt = sizeof(oldBufferSize);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
getsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char*>(&oldBufferSize), &sizeOfInt);
|
for (int i = 0; i < 2; i++) {
|
||||||
|
int bufferOpt = (i == 0) ? SO_SNDBUF : SO_RCVBUF;
|
||||||
|
|
||||||
|
getsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, bufferOpt, reinterpret_cast<char*>(&oldBufferSize), &sizeOfInt);
|
||||||
|
|
||||||
|
setsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, bufferOpt, reinterpret_cast<const char*>(&numBytes),
|
||||||
|
sizeof(numBytes));
|
||||||
|
|
||||||
|
int newBufferSize = 0;
|
||||||
|
getsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, bufferOpt, reinterpret_cast<char*>(&newBufferSize), &sizeOfInt);
|
||||||
|
|
||||||
|
QString bufferTypeString = (i == 0) ? "send" : "receive";
|
||||||
|
|
||||||
|
qDebug() << "Changed socket" << bufferTypeString << "buffer size from" << oldBufferSize << "to" << newBufferSize << "bytes";
|
||||||
|
}
|
||||||
|
|
||||||
setsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, SO_SNDBUF, reinterpret_cast<const char*>(&numSendBytes),
|
|
||||||
sizeof(numSendBytes));
|
|
||||||
|
|
||||||
int newBufferSize = 0;
|
|
||||||
getsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char*>(&newBufferSize), &sizeOfInt);
|
|
||||||
|
|
||||||
qDebug() << "Changed socket send buffer size from" << oldBufferSize << "to" << newBufferSize << "bytes";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LimitedNodeList::packetVersionAndHashMatch(const QByteArray& packet) {
|
bool LimitedNodeList::packetVersionAndHashMatch(const QByteArray& packet) {
|
||||||
|
|
|
@ -123,7 +123,7 @@ protected:
|
||||||
NodeHash::iterator killNodeAtHashIterator(NodeHash::iterator& nodeItemToKill);
|
NodeHash::iterator killNodeAtHashIterator(NodeHash::iterator& nodeItemToKill);
|
||||||
|
|
||||||
|
|
||||||
void changeSendSocketBufferSize(int numSendBytes);
|
void changeSocketBufferSizes(int numBytes);
|
||||||
|
|
||||||
QUuid _sessionUUID;
|
QUuid _sessionUUID;
|
||||||
NodeHash _nodeHash;
|
NodeHash _nodeHash;
|
||||||
|
|
Loading…
Reference in a new issue