From 9e037f13c0bf73b397f97bb4294746f20af2e5e5 Mon Sep 17 00:00:00 2001 From: emdee Date: Fri, 7 Oct 2022 04:45:05 +0000 Subject: [PATCH] bugfix and bulletproof nodes --- README.md | 3 ++- toxygen/app.py | 53 +++++++++++++++++++++++++------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 36d7398..d6c8ac3 100644 --- a/README.md +++ b/README.md @@ -49,4 +49,5 @@ Toxygen is powerful cross-platform [Tox](https://tox.chat/) client written in pu This hard-forked from https://github.com/toxygen-project/toxygen ```next_gen``` branch. -Work on this project is suspended until the MultiDevice problem is solved. +Work on this project is suspended until the +[MultiDevice](https://git.plastiras.org/emdee/tox_profile/wiki/MultiDevice-Announcements-POC) problem is solved. Fork me! \ No newline at end of file diff --git a/toxygen/app.py b/toxygen/app.py index 6485a56..e944463 100644 --- a/toxygen/app.py +++ b/toxygen/app.py @@ -810,10 +810,10 @@ class App: def _test_relays(self, lElts=None): env = self._test_env() if lElts is None: - lElts = env['lElts'] - # shuffle(env['lElts']) + lElts = self._settings['current_nodes_tcp'] + shuffle(lElts) LOG.debug(f"_test_relays {len(env['lElts'])}") - for host,port,key in env['lElts'][:10]: + for host,port,key in lElts[:10]: try: oRet = self._tox.add_tcp_relay(host, port, key) LOG.debug('add_tcp_relay to ' +host +':' +str(port) \ @@ -842,12 +842,20 @@ class App: LOG.debug("test_net " +self._args.network) # bootstrap - LOG.debug('Calling generate_nodes: ') - lNodes = ts.generate_nodes(oArgs=self._args) - if lNodes: - self._settings['current_nodes'] = lNodes - else: - LOG.warn('empty generate_nodes: ') + LOG.debug('Calling generate_nodes: udp') + lNodes = ts.generate_nodes(oArgs=self._args, + ipv='ipv4', + udp_not_tcp=True) + self._settings['current_nodes_udp'] = lNodes + if not lNodes: + LOG.warn('empty generate_nodes udp') + LOG.debug('Calling generate_nodes: tcp') + lNodes = ts.generate_nodes(oArgs=self._args, + ipv='ipv4', + udp_not_tcp=False) + self._settings['current_nodes_tcp'] = lNodes + if not lNodes: + LOG.warn('empty generate_nodes tcp') # if oThread and oThread._stop_thread: return LOG.debug("test_net network=" +self._args.network +' iMax=' +str(iMax)) @@ -874,10 +882,10 @@ class App: # if oThread and oThread._stop_thread: return i = i + 1 LOG.debug(f"bootstrapping status # {i}") - self._test_bootstrap() + self._test_bootstrap(self._settings['current_nodes_udp']) if hasattr(self._args, 'proxy_type') and self._args.proxy_type > 0: LOG.debug(f"relaying status # {i}") - self._test_relays() + self._test_relays(self._settings['current_nodes_tcp']) status = self._tox.self_get_connection_status() LOG.debug(f"connecting status # {i}" +' : ' +repr(status)) if status > 0: @@ -891,41 +899,32 @@ class App: if 'proxy_type' not in _settings or _settings['proxy_type'] == 0 or \ not _settings['proxy_host'] or not _settings['proxy_port']: env = dict( prot = 'ipv4') + lElts = self._settings['current_nodes_udp'] elif _settings['proxy_type'] == 2: env = dict(prot = 'socks5', https_proxy='', \ socks_proxy='socks5://' \ +_settings['proxy_host'] +':' \ +str(_settings['proxy_port'])) + lElts = self._settings['current_nodes_tcp'] elif _settings['proxy_type'] == 1: env = dict(prot = 'https', socks_proxy='', \ https_proxy='http://' \ +_settings['proxy_host'] +':' \ +str(_settings['proxy_port'])) - if 'current_nodes' in _settings and _settings['current_nodes']: - LOG.debug("Using current nodes "+' : ' +str(len(_settings['current_nodes']))) - lElts = _settings['current_nodes'] - elif _settings['network'] in ['local', 'newlocal']: - lElts = lLOCAL - elif _settings['network'] in ['main', 'old']: - lElts = lGOOD - elif 'proxy_type' not in _settings or _settings['proxy_type'] == 0 or \ - not _settings['proxy_host'] or not _settings['proxy_port']: - lElts = lGOOD - else: - lElts = lRELAYS + lElts = _settings['current_nodes_tcp'] env['lElts'] = lElts - LOG.debug(f"test_env {len(env['lElts'])}") + LOG.debug(f"test_env {len(lElts)}") return env def _test_bootstrap(self, lElts=None): env = self._test_env() if lElts is None: - lElts = env['lElts'] - #shuffle(env['lElts']) + lElts = self._settings['current_nodes_udp'] + shuffle(lElts) LOG.debug(f"_test_bootstrap #Elts={len(lElts)}") - LOG.trace(f"_test_bootstrap lElts={lElts[:10]}") + LOG.trace(f"_test_bootstrap lElts={lElts[:8]}") shuffle(env['lElts']) for host,port,key in lElts[:8]: try: