From 64c11ebf8f74103146f0f0d430db6690d3c0f8cd Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 14 Aug 2014 10:36:54 -0700 Subject: [PATCH] don't change the socket buffer sizes if it is already larger --- libraries/networking/src/LimitedNodeList.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index 44e45c359a..0548e95c80 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -82,7 +82,7 @@ LimitedNodeList::LimitedNodeList(unsigned short socketListenPort, unsigned short qDebug() << "NodeList DTLS socket is listening on" << _dtlsSocket->localPort(); } - const int LARGER_BUFFER_SIZE = 1048576; + const int LARGER_BUFFER_SIZE = 2097152; changeSocketBufferSizes(LARGER_BUFFER_SIZE); _packetStatTimer.start(); @@ -147,12 +147,21 @@ void LimitedNodeList::changeSocketBufferSizes(int numBytes) { setsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, bufferOpt, reinterpret_cast(&numBytes), sizeof(numBytes)); - int newBufferSize = 0; - getsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, bufferOpt, reinterpret_cast(&newBufferSize), &sizeOfInt); - QString bufferTypeString = (i == 0) ? "send" : "receive"; - qDebug() << "Changed socket" << bufferTypeString << "buffer size from" << oldBufferSize << "to" << newBufferSize << "bytes"; + if (oldBufferSize < numBytes) { + int newBufferSize = 0; + getsockopt(_nodeSocket.socketDescriptor(), SOL_SOCKET, bufferOpt, reinterpret_cast(&newBufferSize), &sizeOfInt); + + qDebug() << "Changed socket" << bufferTypeString << "buffer size from" << oldBufferSize << "to" + << newBufferSize << "bytes"; + } else { + // don't make the buffer smaller + qDebug() << "Did not change socket" << bufferTypeString << "buffer size from" << oldBufferSize + << "since it is larger than desired size of" << numBytes; + } + + }