Fix asked_peers ignore for optional files

This commit is contained in:
shortcutme 2017-10-03 15:51:17 +02:00
parent 43e6f374fa
commit 988d169687
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -299,16 +299,17 @@ class WorkerManager(object):
# Try to query connected peers # Try to query connected peers
threads = [] threads = []
peers = [peer for peer in self.site.getConnectedPeers() if peer not in self.asked_peers] peers = [peer for peer in self.site.getConnectedPeers() if peer.key not in self.asked_peers]
if not peers: if not peers:
peers = self.site.getConnectablePeers() peers = self.site.getConnectablePeers(ignore=self.asked_peers)
for peer in peers: for peer in peers:
threads.append(gevent.spawn(peer.findHashIds, list(optional_hash_ids))) threads.append(gevent.spawn(peer.findHashIds, list(optional_hash_ids)))
self.asked_peers.append(peer) self.asked_peers.append(peer.key)
for i in range(5): for i in range(5):
time.sleep(1) time.sleep(1)
thread_values = [thread.value for thread in threads if thread.value] thread_values = [thread.value for thread in threads if thread.value]
if not thread_values: if not thread_values:
continue continue
@ -340,7 +341,7 @@ class WorkerManager(object):
for peer in peers: for peer in peers:
threads.append(gevent.spawn(peer.findHashIds, list(optional_hash_ids))) threads.append(gevent.spawn(peer.findHashIds, list(optional_hash_ids)))
self.asked_peers.append(peer) self.asked_peers.append(peer.key)
gevent.joinall(threads, timeout=15) gevent.joinall(threads, timeout=15)