diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index 4d75b043..20ee200e 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -3727,7 +3727,23 @@ NAN_METHOD(HookPackets) { } } } else if (strCommand == "filterload") { - ; + CBloomFilter filter; + cur->vRecv >> filter; + + if (!filter.IsWithinSizeConstraints()) { + // There is no excuse for sending a too-large filter + o->Set(NanNew("misbehaving"), NanNew(true)); + } else { + LOCK(pfrom->cs_filter); + filter.UpdateEmptyFull(); + // std::vector vData; + o->Set(NanNew("data"), NanNew(filter.vData.GetHex().c_str())); + o->Set(NanNew("full"), NanNew(filter.isFull)); + o->Set(NanNew("empty"), NanNew(filter.isEmpty)); + o->Set(NanNew("hashFuncs"), NanNew(filter.nHashFuncs)); + o->Set(NanNew("tweaks"), NanNew(filter.nTweak)); + o->Set(NanNew("flags"), NanNew(filter.nFlags)); + } } else if (strCommand == "filteradd") { ; } else if (strCommand == "filterclear") {