MCPcopy Index your code
hub / github.com/Bitmessage/PyBitmessage / _checkAndShareUndefinedObjectWithPeers

Function _checkAndShareUndefinedObjectWithPeers

src/protocol.py:415–435  ·  view source on GitHub ↗
(data)

Source from the content-addressed store, hash-verified

413
414
415def _checkAndShareUndefinedObjectWithPeers(data):
416 embeddedTime, = unpack('>Q', data[8:16])
417 readPosition = 20 # bypass nonce, time, and object type
418 objectVersion, objectVersionLength = decodeVarint(
419 data[readPosition:readPosition + 9])
420 readPosition += objectVersionLength
421 streamNumber, streamNumberLength = decodeVarint(
422 data[readPosition:readPosition + 9])
423 if not streamNumber in state.streamsInWhichIAmParticipating:
424 logger.debug('The streamNumber %s isn\'t one we are interested in.', streamNumber)
425 return
426
427 inventoryHash = calculateInventoryHash(data)
428 if inventoryHash in Inventory():
429 logger.debug('We have already received this undefined object. Ignoring.')
430 return
431 objectType, = unpack('>I', data[16:20])
432 Inventory()[inventoryHash] = (
433 objectType, streamNumber, data, embeddedTime,'')
434 logger.debug('advertising inv with hash: %s', hexlify(inventoryHash))
435 broadcastToSendDataQueues((streamNumber, 'advertiseobject', inventoryHash))
436
437
438def _checkAndShareMsgWithPeers(data):

Callers 1

Calls 4

decodeVarintFunction · 0.90
calculateInventoryHashFunction · 0.90
InventoryClass · 0.90

Tested by

no test coverage detected