Fixed: ERROR - Too many items in inv message! Closes 1274
This commit is contained in:
parent
1f6a7adf03
commit
02f40f5036
|
@ -300,7 +300,7 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
|
||||||
def _command_inv(self, dandelion=False):
|
def _command_inv(self, dandelion=False):
|
||||||
items = self.decode_payload_content("l32s")
|
items = self.decode_payload_content("l32s")
|
||||||
|
|
||||||
if len(items) >= BMProto.maxObjectCount:
|
if len(items) > BMProto.maxObjectCount:
|
||||||
logger.error("Too many items in %sinv message!", "d" if dandelion else "")
|
logger.error("Too many items in %sinv message!", "d" if dandelion else "")
|
||||||
raise BMProtoExcessiveDataError()
|
raise BMProtoExcessiveDataError()
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -180,7 +180,11 @@ class TCPConnection(BMProto, TLSDispatcher):
|
||||||
for hash, storedValue in bigInvList.items():
|
for hash, storedValue in bigInvList.items():
|
||||||
payload += hash
|
payload += hash
|
||||||
objectCount += 1
|
objectCount += 1
|
||||||
if objectCount >= BMProto.maxObjectCount:
|
|
||||||
|
# Remove -1 below when sufficient time has passed for users to
|
||||||
|
# upgrade to versions of PyBitmessage that accept inv with 50,000
|
||||||
|
# items
|
||||||
|
if objectCount >= BMProto.maxObjectCount - 1:
|
||||||
sendChunk()
|
sendChunk()
|
||||||
payload = b''
|
payload = b''
|
||||||
objectCount = 0
|
objectCount = 0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user