Listener bug fix: switching to make_unique ptr side effects, the dummy socket still alive when destructor of listener called

This commit is contained in:
2019-03-08 16:16:40 +01:00
parent 1103f56256
commit 19b21dac88

View File

@ -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<genericSocket>(*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;
}