Changeset View
Changeset View
Standalone View
Standalone View
src/net.cpp
Show First 20 Lines • Show All 580 Lines • ▼ Show 20 Lines | while (nBytes > 0) { | ||||
// Absorb network data. | // Absorb network data. | ||||
int handled = m_deserializer->Read(config, pch, nBytes); | int handled = m_deserializer->Read(config, pch, nBytes); | ||||
if (handled < 0) { | if (handled < 0) { | ||||
m_deserializer->Reset(); | m_deserializer->Reset(); | ||||
return false; | return false; | ||||
} | } | ||||
if (m_deserializer->OversizedMessageDetected(config)) { | |||||
LogPrint(BCLog::NET, | |||||
"Oversized message from peer=%i, disconnecting\n", | |||||
GetId()); | |||||
m_deserializer->Reset(); | |||||
return false; | |||||
} | |||||
pch += handled; | pch += handled; | ||||
nBytes -= handled; | nBytes -= handled; | ||||
if (m_deserializer->Complete()) { | if (m_deserializer->Complete()) { | ||||
// decompose a transport agnostic CNetMessage from the deserializer | // decompose a transport agnostic CNetMessage from the deserializer | ||||
CNetMessage msg = m_deserializer->GetMessage(config, nTimeMicros); | CNetMessage msg = m_deserializer->GetMessage(config, nTimeMicros); | ||||
// Store received bytes per message command to prevent a memory DOS, | // Store received bytes per message command to prevent a memory DOS, | ||||
▲ Show 20 Lines • Show All 2,475 Lines • Show Last 20 Lines |