Browse Source

Move bloom filter filtering logic outside of command "switch" (giant if/else).

Moving this logic outside of the "switch" makes it far simpler to
enable the forced disconnect by a parameter.
0.13
Patick Strateman 9 years ago
parent
commit
b3caa9b7fa
  1. 30
      src/main.cpp

30
src/main.cpp

@ -3989,6 +3989,21 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
} }
if (!(nLocalServices & NODE_BLOOM) &&
(strCommand == "filterload" ||
strCommand == "filteradd" ||
strCommand == "filterclear"))
{
if (pfrom->nVersion >= NO_BLOOM_VERSION) {
Misbehaving(pfrom->GetId(), 100);
return false;
}
//TODO: Enable this after reasonable network upgrade
//else {
// pfrom->fDisconnect = true;
// return false;
//}
}
if (strCommand == "version") if (strCommand == "version")
@ -4750,21 +4765,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
} }
else if (!(nLocalServices & NODE_BLOOM) &&
(strCommand == "filterload" ||
strCommand == "filteradd" ||
strCommand == "filterclear") &&
//TODO: Remove this line after reasonable network upgrade
pfrom->nVersion >= NO_BLOOM_VERSION)
{
if (pfrom->nVersion >= NO_BLOOM_VERSION)
Misbehaving(pfrom->GetId(), 100);
//TODO: Enable this after reasonable network upgrade
//else
// pfrom->fDisconnect = true;
}
else if (strCommand == "filterload") else if (strCommand == "filterload")
{ {
CBloomFilter filter; CBloomFilter filter;

Loading…
Cancel
Save