Changeset View
Changeset View
Standalone View
Standalone View
src/seeder/bitcoin.cpp
Show First 20 Lines • Show All 170 Lines • ▼ Show 20 Lines | |||||
bool CSeederNode::ProcessMessages() { | bool CSeederNode::ProcessMessages() { | ||||
if (vRecv.empty()) { | if (vRecv.empty()) { | ||||
return false; | return false; | ||||
} | } | ||||
do { | do { | ||||
CDataStream::iterator pstart = std::search( | CDataStream::iterator pstart = std::search( | ||||
vRecv.begin(), vRecv.end(), BEGIN(netMagic), END(netMagic)); | vRecv.begin(), vRecv.end(), BEGIN(netMagic), END(netMagic)); | ||||
uint32_t nHeaderSize = GetSerializeSize( | uint32_t nHeaderSize = | ||||
CMessageHeader(netMagic), vRecv.GetType(), vRecv.GetVersion()); | GetSerializeSize(CMessageHeader(netMagic), vRecv.GetVersion()); | ||||
if (vRecv.end() - pstart < nHeaderSize) { | if (vRecv.end() - pstart < nHeaderSize) { | ||||
if (vRecv.size() > nHeaderSize) { | if (vRecv.size() > nHeaderSize) { | ||||
vRecv.erase(vRecv.begin(), vRecv.end() - nHeaderSize); | vRecv.erase(vRecv.begin(), vRecv.end() - nHeaderSize); | ||||
} | } | ||||
break; | break; | ||||
} | } | ||||
vRecv.erase(vRecv.begin(), pstart); | vRecv.erase(vRecv.begin(), pstart); | ||||
std::vector<char> vHeaderSave(vRecv.begin(), | std::vector<char> vHeaderSave(vRecv.begin(), | ||||
▲ Show 20 Lines • Show All 157 Lines • Show Last 20 Lines |