From 19b21dac885ad6795334ff2250e0b74860f0e663 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 8 Mar 2019 16:16:40 +0100 Subject: [PATCH] Listener bug fix: switching to make_unique ptr side effects, the dummy socket still alive when destructor of listener called --- slsReceiverSoftware/src/Listener.cpp | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/slsReceiverSoftware/src/Listener.cpp b/slsReceiverSoftware/src/Listener.cpp index 893b5b256..8b548945a 100644 --- a/slsReceiverSoftware/src/Listener.cpp +++ b/slsReceiverSoftware/src/Listener.cpp @@ -247,35 +247,24 @@ int Listener::CreateDummySocketForUDPSocketBufferSize(uint64_t s) { memset(eth, 0, MAX_STR_LENGTH); } - // shutdown if any open - if(udpSocket){ - udpSocket->ShutDownSocket(); - } - //create dummy socket try { - udpSocket = sls::make_unique(*udpPortNumber, genericSocket::UDP, + genericSocket g(*udpPortNumber, genericSocket::UDP, generalData->packetSize, (strlen(eth)?eth:nullptr), generalData->headerPacketSize, *udpSocketBufferSize); + + // doubled due to kernel bookkeeping (could also be less due to permissions) + *actualUDPSocketBufferSize = g.getActualUDPSocketBufferSize(); + if (*actualUDPSocketBufferSize != (s*2)) { + *udpSocketBufferSize = temp; + } + } catch (...) { FILE_LOG(logERROR) << "Could not create a test UDP socket on port " << *udpPortNumber; return FAIL; } - // doubled due to kernel bookkeeping (could also be less due to permissions) - *actualUDPSocketBufferSize = udpSocket->getActualUDPSocketBufferSize(); - if (*actualUDPSocketBufferSize != (s*2)) { - *udpSocketBufferSize = temp; - } - - - // shutdown socket - if(udpSocket){ - udpSocketAlive = false; - udpSocket->ShutDownSocket(); - } - return OK; }