do not upload plaintext to peers that do not support it, closes #14

This commit is contained in:
Kevin Froman 2020-10-10 04:26:51 +00:00
parent 503bf65cbe
commit fc7db42deb
5 changed files with 19 additions and 2 deletions

View file

@ -100,7 +100,15 @@ def connect_new_peer_to_communicator(shared_state, peer='', useBootstrap=False):
else:
kv.get('peerProfiles').append(
onionrpeers.PeerProfiles(address))
try:
del kv.get('plaintextDisabledPeers')[address]
except KeyError:
pass
if peeraction.peer_action(
shared_state, address, 'plaintext') == 'false':
kv.get('plaintextDisabledPeers')[address] = True
break
else:
# Mark a peer as tried if they failed to respond to ping
tried.append(address)

View file

@ -68,6 +68,9 @@ def upload_blocks_from_communicator(comm_inst: 'OnionrCommunicatorDaemon'):
for _ in range(min(len(kv.get('onlinePeers')), 6)):
try:
peer = onlinepeers.pick_online_peer(kv)
if peer in kv.get('plaintextDisabledPeers'):
logger.info(f"Cannot upload plaintext block to peer that denies it {peer}") # noqa
continue
except onionrexceptions.OnlinePeerNeeded:
continue
try: