(self, num=None, check_site_on_reconnect=False)
| 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): |
no test coverage detected