treplace SSL checkbox in GUI with command line option - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit dc388d4c7c541fadb9869727e359edace4c9f6f0 DIR parent 5c6544a296e929f6f7230b4f3a2ae4961126ad0f HTML Author: ThomasV <thomasv@electrum.org> Date: Mon, 18 Dec 2017 14:15:10 +0100 replace SSL checkbox in GUI with command line option Diffstat: M gui/qt/network_dialog.py | 12 +++--------- M lib/commands.py | 1 + M lib/network.py | 8 ++++---- 3 files changed, 8 insertions(+), 13 deletions(-) --- DIR diff --git a/gui/qt/network_dialog.py b/gui/qt/network_dialog.py t@@ -193,8 +193,8 @@ class NetworkChoiceLayout(object): proxy_tab = QWidget() blockchain_tab = QWidget() tabs.addTab(blockchain_tab, _('Overview')) - tabs.addTab(proxy_tab, _('Connection')) tabs.addTab(server_tab, _('Server')) + tabs.addTab(proxy_tab, _('Proxy')) # server tab grid = QGridLayout(server_tab) t@@ -204,13 +204,11 @@ class NetworkChoiceLayout(object): self.server_host.setFixedWidth(200) self.server_port = QLineEdit() self.server_port.setFixedWidth(60) - self.ssl_cb = QCheckBox(_('Use SSL')) self.autoconnect_cb = QCheckBox(_('Select server automatically')) self.autoconnect_cb.setEnabled(self.config.is_modifiable('auto_connect')) self.server_host.editingFinished.connect(self.set_server) self.server_port.editingFinished.connect(self.set_server) - self.ssl_cb.clicked.connect(self.change_protocol) self.autoconnect_cb.clicked.connect(self.set_server) self.autoconnect_cb.clicked.connect(self.update) t@@ -269,8 +267,6 @@ class NetworkChoiceLayout(object): self.tor_cb.hide() self.tor_cb.clicked.connect(self.use_tor_proxy) - grid.addWidget(self.ssl_cb, 0, 0, 1, 3) - grid.addWidget(HelpButton(_('SSL is used to authenticate and encrypt your connections with Electrum servers.')), 0, 4) grid.addWidget(self.tor_cb, 1, 0, 1, 3) grid.addWidget(self.proxy_cb, 2, 0, 1, 3) grid.addWidget(HelpButton(_('Proxy settings apply to all connections: with Electrum servers, but also with third-party services.')), 2, 4) t@@ -334,14 +330,13 @@ class NetworkChoiceLayout(object): self.server_port.setEnabled(enabled) self.servers_list.setEnabled(enabled) else: - for w in [self.autoconnect_cb, self.server_host, self.server_port, self.ssl_cb, self.servers_list]: + for w in [self.autoconnect_cb, self.server_host, self.server_port, self.servers_list]: w.setEnabled(False) def update(self): host, port, protocol, proxy_config, auto_connect = self.network.get_parameters() self.server_host.setText(host) self.server_port.setText(port) - self.ssl_cb.setChecked(protocol=='s') self.autoconnect_cb.setChecked(auto_connect) host = self.network.interface.host if self.network.interface else _('None') t@@ -438,7 +433,6 @@ class NetworkChoiceLayout(object): port = pp.get(protocol) self.server_host.setText(host) self.server_port.setText(port) - self.ssl_cb.setChecked(protocol=='s') def accept(self): pass t@@ -447,7 +441,7 @@ class NetworkChoiceLayout(object): host, port, protocol, proxy, auto_connect = self.network.get_parameters() host = str(self.server_host.text()) port = str(self.server_port.text()) - protocol = 's' if self.ssl_cb.isChecked() else 't' + protocol = 't' if self.config.get('nossl') else 's' auto_connect = self.autoconnect_cb.isChecked() self.network.set_parameters(host, port, protocol, proxy, auto_connect) DIR diff --git a/lib/commands.py b/lib/commands.py t@@ -825,6 +825,7 @@ def add_global_options(parser): group.add_argument("-P", "--portable", action="store_true", dest="portable", default=False, help="Use local 'electrum_data' directory") group.add_argument("-w", "--wallet", dest="wallet_path", help="wallet path") group.add_argument("--testnet", action="store_true", dest="testnet", default=False, help="Use Testnet") + group.add_argument("--nossl", action="store_true", dest="nossl", default=False, help="Disable SSL") def get_parser(): # create main parser DIR diff --git a/lib/network.py b/lib/network.py t@@ -170,16 +170,17 @@ class Network(util.DaemonThread): self.blockchain_index = config.get('blockchain_index', 0) if self.blockchain_index not in self.blockchains.keys(): self.blockchain_index = 0 + self.protocol = 't' if self.config.get('nossl') else 's' # Server for addresses and transactions self.default_server = self.config.get('server') # Sanitize default server try: - deserialize_server(self.default_server) + host, port, protocol = deserialize_server(self.default_server) + assert protocol == self.protocol except: self.default_server = None if not self.default_server: self.default_server = pick_random_server() - self.lock = threading.Lock() self.pending_sends = [] self.message_id = 0 t@@ -217,8 +218,7 @@ class Network(util.DaemonThread): self.auto_connect = self.config.get('auto_connect', True) self.connecting = set() self.socket_queue = queue.Queue() - self.start_network(deserialize_server(self.default_server)[2], - deserialize_proxy(self.config.get('proxy'))) + self.start_network(self.protocol, deserialize_proxy(self.config.get('proxy'))) def register_callback(self, callback, events): with self.lock: