fix warnings and prevent bug that sends invalid traffic to user

pull/877/head
Jeff Becker 5 years ago
parent 8c048f2e37
commit 5f9ea7b485
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -155,7 +155,8 @@ namespace llarp
else
src = pkt.srcv6();
pkt.UpdateIPv6Address(src, m_IP);
const llarp_buffer_t& pktbuf = pkt.Buffer(); // life time extension
const auto _pktbuf = pkt.Buffer();
const llarp_buffer_t& pktbuf = _pktbuf.underlying;
const uint8_t queue_idx = pktbuf.sz / llarp::routing::ExitPadSize;
if(m_DownstreamQueues.find(queue_idx) == m_DownstreamQueues.end())
m_DownstreamQueues.emplace(queue_idx, InboundTrafficQueue_t{});
@ -163,7 +164,7 @@ namespace llarp
if(queue.size() == 0)
{
queue.emplace_back();
return queue.back().PutBuffer(buf.underlying, m_Counter++);
return queue.back().PutBuffer(pktbuf, m_Counter++);
}
auto& msg = queue.back();
if(msg.Size() + pktbuf.sz > llarp::routing::ExitPadSize)

@ -223,7 +223,8 @@ namespace llarp
bool
BaseSession::QueueUpstreamTraffic(llarp::net::IPPacket pkt, const size_t N)
{
const llarp_buffer_t& buf = pkt.Buffer();
const auto pktbuf = pkt.ConstBuffer();
const llarp_buffer_t& buf = pktbuf;
auto& queue = m_Upstream[buf.sz / N];
// queue overflow
if(queue.size() >= MaxUpstreamQueueLength)

Loading…
Cancel
Save