Changeset View
Changeset View
Standalone View
Standalone View
src/seeder/bitcoin.cpp
Show First 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | bool CSeederNode::ProcessMessage(std::string strCommand, CDataStream &recv) { | ||||
if (strCommand == "version") { | if (strCommand == "version") { | ||||
int64_t nTime; | int64_t nTime; | ||||
CAddress addrMe; | CAddress addrMe; | ||||
CAddress addrFrom; | CAddress addrFrom; | ||||
uint64_t nNonce = 1; | uint64_t nNonce = 1; | ||||
uint64_t nServiceInt; | uint64_t nServiceInt; | ||||
recv >> nVersion >> nServiceInt >> nTime >> addrMe; | recv >> nVersion >> nServiceInt >> nTime >> addrMe; | ||||
you.nServices = ServiceFlags(nServiceInt); | you.nServices = ServiceFlags(nServiceInt); | ||||
if (nVersion == 10300) nVersion = 300; | recv >> addrFrom >> nNonce; | ||||
if (nVersion >= 106 && !recv.empty()) recv >> addrFrom >> nNonce; | recv >> strSubVer; | ||||
if (nVersion >= 106 && !recv.empty()) recv >> strSubVer; | recv >> nStartingHeight; | ||||
if (nVersion >= 209 && !recv.empty()) recv >> nStartingHeight; | |||||
if (nVersion >= 209) { | |||||
BeginMessage("verack"); | BeginMessage("verack"); | ||||
EndMessage(); | EndMessage(); | ||||
} | |||||
vSend.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | vSend.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | ||||
if (nVersion < 209) { | |||||
vRecv.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | |||||
GotVersion(); | |||||
} | |||||
return false; | return false; | ||||
} | } | ||||
if (strCommand == "verack") { | if (strCommand == "verack") { | ||||
vRecv.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | vRecv.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | ||||
GotVersion(); | GotVersion(); | ||||
return false; | return false; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 212 Lines • Show Last 20 Lines |