Runnable with both Python3 and Python2, with PyQt4 #2249
|
@ -31,6 +31,7 @@ from helper_sql import sqlExecute, sqlQuery
|
|||
from network import knownnodes, StoppableThread
|
||||
from six.moves import configparser, queue
|
||||
from six.moves.reprlib import repr
|
||||
import six
|
||||
from dbcompat import dbstr
|
||||
|
||||
|
||||
|
@ -518,9 +519,15 @@ class singleWorker(StoppableThread):
|
|||
payload, TTL, log_prefix='(For onionpeer object)')
|
||||
|
||||
inventoryHash = highlevelcrypto.calculateInventoryHash(payload)
|
||||
if six.PY2:
|
||||
payload_buffer = buffer(payload)
|
||||
tag_buffer = buffer(tag)
|
||||
else: # assume six.PY3
|
||||
payload_buffer = memoryview(payload)
|
||||
tag_buffer = memoryview(tag)
|
||||
state.Inventory[inventoryHash] = (
|
||||
objectType, streamNumber, buffer(payload), # noqa: F821
|
||||
embeddedTime, buffer(tag) # noqa: F821
|
||||
objectType, streamNumber, payload_buffer, # noqa: F821
|
||||
embeddedTime, tag_buffer # noqa: F821
|
||||
)
|
||||
self.logger.info(
|
||||
'sending inv (within sendOnionPeerObj function) for object: %s',
|
||||
|
|
|
@ -422,8 +422,12 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
|
|||
|
||||
try:
|
||||
self.object.checkObjectByType()
|
||||
if six.PY2:
|
||||
data_buffer = buffer(self.object.data)
|
||||
else: # assume six.PY3
|
||||
data_buffer = memoryview(self.object.data)
|
||||
objectProcessorQueue.put((
|
||||
self.object.objectType, buffer(self.object.data))) # noqa: F821
|
||||
self.object.objectType, data_buffer)) # noqa: F821
|
||||
except BMObjectInvalidError:
|
||||
BMProto.stopDownloadingObject(self.object.inventoryHash, True)
|
||||
else:
|
||||
|
@ -437,10 +441,16 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
|
|||
state.Dandelion.removeHash(
|
||||
self.object.inventoryHash, "cycle detection")
|
||||
|
||||
if six.PY2:
|
||||
object_buffer = buffer(self.payload[objectOffset:])
|
||||
tag_buffer = buffer(self.object.tag)
|
||||
else: # assume six.PY3
|
||||
object_buffer = memoryview(self.payload[objectOffset:])
|
||||
tag_buffer = memoryview(self.object.tag)
|
||||
state.Inventory[self.object.inventoryHash] = (
|
||||
self.object.objectType, self.object.streamNumber,
|
||||
buffer(self.payload[objectOffset:]), self.object.expiresTime, # noqa: F821
|
||||
buffer(self.object.tag) # noqa: F821
|
||||
object_buffer, self.object.expiresTime, # noqa: F821
|
||||
tag_buffer # noqa: F821
|
||||
)
|
||||
self.handleReceivedObject(
|
||||
self.object.streamNumber, self.object.inventoryHash)
|
||||
|
|
Reference in New Issue
Block a user