MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / needConnections

Method needConnections

src/Site/Site.py:811–841  ·  view source on GitHub ↗
(self, num=None, check_site_on_reconnect=False)

Source from the content-addressed store, hash-verified

809
810 # Keep connections to get the updates
811 def needConnections(self, num=None, check_site_on_reconnect=False):
812 if num is None:
813 if len(self.peers) < 50:
814 num = 3
815 else:
816 num = 6
817 need = min(len(self.peers), num, config.connected_limit) # Need 5 peer, but max total peers
818
819 connected = len(self.getConnectedPeers())
820
821 connected_before = connected
822
823 self.log.debug("Need connections: %s, Current: %s, Total: %s" % (need, connected, len(self.peers)))
824
825 if connected < need: # Need more than we have
826 for peer in self.getRecentPeers(30):
827 if not peer.connection or not peer.connection.connected: # No peer connection or disconnected
828 peer.pex() # Initiate peer exchange
829 if peer.connection and peer.connection.connected:
830 connected += 1 # Successfully connected
831 if connected >= need:
832 break
833 self.log.debug(
834 "Connected before: %s, after: %s. Check site: %s." %
835 (connected_before, connected, check_site_on_reconnect)
836 )
837
838 if check_site_on_reconnect and connected_before == 0 and connected > 0 and self.connection_server.has_internet:
839 gevent.spawn(self.update, check_files=False)
840
841 return connected
842
843 # Return: Probably peers verified to be connectable recently
844 def getConnectablePeers(self, need_num=5, ignore=[], allow_private=True):

Callers 2

cleanupSitesMethod · 0.80
announceSiteMethod · 0.80

Calls 3

getConnectedPeersMethod · 0.95
getRecentPeersMethod · 0.95
pexMethod · 0.80

Tested by

no test coverage detected