Browse Source

add --noonion option to filter out onion servers

closes #4531
3.2.x
SomberNight 7 years ago
parent
commit
f64062b6f1
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 1
      electrum/commands.py
  2. 6
      electrum/network.py

1
electrum/commands.py

@ -826,6 +826,7 @@ def add_network_options(parser):
parser.add_argument("-1", "--oneserver", action="store_true", dest="oneserver", default=None, help="connect to one server only") parser.add_argument("-1", "--oneserver", action="store_true", dest="oneserver", default=None, help="connect to one server only")
parser.add_argument("-s", "--server", dest="server", default=None, help="set server host:port:protocol, where protocol is either t (tcp) or s (ssl)") parser.add_argument("-s", "--server", dest="server", default=None, help="set server host:port:protocol, where protocol is either t (tcp) or s (ssl)")
parser.add_argument("-p", "--proxy", dest="proxy", default=None, help="set proxy [type:]host[:port], where type is socks4,socks5 or http") parser.add_argument("-p", "--proxy", dest="proxy", default=None, help="set proxy [type:]host[:port], where type is socks4,socks5 or http")
parser.add_argument("--noonion", action="store_true", dest="noonion", default=None, help="do not try to connect to onion servers")
def add_global_options(parser): def add_global_options(parser):
group = parser.add_argument_group('global options') group = parser.add_argument_group('global options')

6
electrum/network.py

@ -89,6 +89,10 @@ def filter_version(servers):
return {k: v for k, v in servers.items() if is_recent(v.get('version'))} return {k: v for k, v in servers.items() if is_recent(v.get('version'))}
def filter_noonion(servers):
return {k: v for k, v in servers.items() if not k.endswith('.onion')}
def filter_protocol(hostmap, protocol='s'): def filter_protocol(hostmap, protocol='s'):
'''Filters the hostmap for those implementing protocol. '''Filters the hostmap for those implementing protocol.
The result is a list in serialized form.''' The result is a list in serialized form.'''
@ -409,6 +413,8 @@ class Network(util.DaemonThread):
continue continue
if host not in out: if host not in out:
out[host] = {protocol: port} out[host] = {protocol: port}
if self.config.get('noonion'):
out = filter_noonion(out)
return out return out
@with_interface_lock @with_interface_lock

Loading…
Cancel
Save