Always prefer publishing to connected peers

This commit is contained in:
HelloZeroNet 2016-03-16 00:40:01 +01:00
parent 11e09adda7
commit 1cf0e0eb21

View file

@ -367,20 +367,23 @@ class Site(object):
else: else:
limit = 5 limit = 5
connected_peers = self.getConnectedPeers() peers = self.getConnectedPeers()
if len(connected_peers) > limit * 2: # Publish to already connected peers if possible num_connected_peers = len(peers)
peers = connected_peers
else: random.shuffle(peers)
peers = self.peers.values()
# Add more, non-connected peers
peers_more = self.peers.values()
random.shuffle(peers_more)
peers += peers_more[0:limit*2]
self.log.info("Publishing %s to %s/%s peers (connected: %s)..." % ( self.log.info("Publishing %s to %s/%s peers (connected: %s)..." % (
inner_path, limit, len(self.peers), len(connected_peers) inner_path, limit, len(self.peers), num_connected_peers
)) ))
if not peers: if not peers:
return 0 # No peers found return 0 # No peers found
random.shuffle(peers)
event_done = gevent.event.AsyncResult() event_done = gevent.event.AsyncResult()
for i in range(min(len(self.peers), limit, threads)): for i in range(min(len(self.peers), limit, threads)):
publisher = gevent.spawn(self.publisher, inner_path, peers, published, limit, event_done) publisher = gevent.spawn(self.publisher, inner_path, peers, published, limit, event_done)