mirror of
https://github.com/oxen-io/lokinet
synced 2023-12-14 06:53:00 +01:00
try fixing leak
This commit is contained in:
parent
67da33a221
commit
89e5b6b4cc
|
@ -839,8 +839,10 @@ struct PacketBuffer
|
||||||
{
|
{
|
||||||
_ptr = new char[sz];
|
_ptr = new char[sz];
|
||||||
}
|
}
|
||||||
PacketBuffer(char* buf, size_t sz) : _ptr{buf}, _sz{sz}
|
PacketBuffer(char* buf, size_t sz)
|
||||||
{
|
{
|
||||||
|
_ptr = buf;
|
||||||
|
_sz = sz;
|
||||||
}
|
}
|
||||||
~PacketBuffer()
|
~PacketBuffer()
|
||||||
{
|
{
|
||||||
|
|
|
@ -469,7 +469,8 @@ namespace libuv
|
||||||
udp_glue* glue = static_cast< udp_glue* >(handle->data);
|
udp_glue* glue = static_cast< udp_glue* >(handle->data);
|
||||||
if(addr)
|
if(addr)
|
||||||
glue->RecvFrom(nread, buf, addr);
|
glue->RecvFrom(nread, buf, addr);
|
||||||
if(glue->m_UDP == nullptr || glue->m_UDP->recvfrom != nullptr)
|
if(nread == 0 || glue->m_UDP == nullptr
|
||||||
|
|| glue->m_UDP->recvfrom != nullptr)
|
||||||
delete[] buf->base;
|
delete[] buf->base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -487,13 +488,15 @@ namespace libuv
|
||||||
if(sz > 0 && m_UDP)
|
if(sz > 0 && m_UDP)
|
||||||
{
|
{
|
||||||
const size_t pktsz = sz;
|
const size_t pktsz = sz;
|
||||||
const llarp_buffer_t pkt{(const byte_t*)buf->base, pktsz};
|
|
||||||
if(m_UDP->recvfrom)
|
if(m_UDP->recvfrom)
|
||||||
|
{
|
||||||
|
const llarp_buffer_t pkt((const byte_t*)buf->base, pktsz);
|
||||||
m_UDP->recvfrom(m_UDP, fromaddr, ManagedBuffer{pkt});
|
m_UDP->recvfrom(m_UDP, fromaddr, ManagedBuffer{pkt});
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_LastPackets.emplace_back(
|
PacketBuffer pbuf(buf->base, pktsz);
|
||||||
PacketEvent{llarp::Addr(*fromaddr), PacketBuffer(buf->base, sz)});
|
m_LastPackets.emplace_back(PacketEvent{*fromaddr, std::move(pbuf)});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue