Revert "Revert "Added proxy options to network dialog""
This reverts commit 6e0b3620d2
.
This commit is contained in:
parent
6e0b3620d2
commit
09c90c0971
|
@ -1380,6 +1380,22 @@ class ElectrumWindow(QMainWindow):
|
||||||
hbox.addWidget(radio2)
|
hbox.addWidget(radio2)
|
||||||
|
|
||||||
vbox.addLayout(hbox)
|
vbox.addLayout(hbox)
|
||||||
|
|
||||||
|
hbox = QHBoxLayout()
|
||||||
|
proxy_mode = QComboBox()
|
||||||
|
proxy_host = QLineEdit()
|
||||||
|
proxy_port = QLineEdit()
|
||||||
|
proxy_mode.addItems(['NONE', 'SOCKS4', 'SOCKS5', 'HTTP'])
|
||||||
|
proxy_mode.setCurrentIndex(proxy_mode.findText(str(interface.proxy["mode"]).upper()))
|
||||||
|
proxy_host.setText(interface.proxy["host"])
|
||||||
|
proxy_port.setText(interface.proxy["port"])
|
||||||
|
hbox.addWidget(QLabel(_('Proxy') + ':'))
|
||||||
|
hbox.addWidget(proxy_mode)
|
||||||
|
hbox.addWidget(proxy_host)
|
||||||
|
hbox.addWidget(proxy_port)
|
||||||
|
vbox.addLayout(hbox)
|
||||||
|
|
||||||
|
hbox = QHBoxLayout()
|
||||||
|
|
||||||
if wallet.interface.servers:
|
if wallet.interface.servers:
|
||||||
label = _('Active Servers')
|
label = _('Active Servers')
|
||||||
|
@ -1413,7 +1429,8 @@ class ElectrumWindow(QMainWindow):
|
||||||
server = unicode( host_line.text() )
|
server = unicode( host_line.text() )
|
||||||
|
|
||||||
try:
|
try:
|
||||||
wallet.set_server(server)
|
proxy = { u'mode':unicode(proxy_mode.currentText()).lower(), u'host':unicode(proxy_host.text()), u'port':unicode(proxy_port.text()) }
|
||||||
|
wallet.set_server(server, proxy)
|
||||||
except:
|
except:
|
||||||
QMessageBox.information(None, _('Error'), 'error', _('OK'))
|
QMessageBox.information(None, _('Error'), 'error', _('OK'))
|
||||||
if parent == None:
|
if parent == None:
|
||||||
|
|
|
@ -29,7 +29,7 @@ DEFAULT_SERVERS = [ 'ecdsa.org:50001:t',
|
||||||
'uncle-enzo.info:50001:t',
|
'uncle-enzo.info:50001:t',
|
||||||
'electrum.bytesized-hosting.com:50001:t'] # list of default servers
|
'electrum.bytesized-hosting.com:50001:t'] # list of default servers
|
||||||
|
|
||||||
proxy_modes = ['off', 'socks4', 'socks5', 'http' ]
|
proxy_modes = ['none', 'socks4', 'socks5', 'http' ]
|
||||||
|
|
||||||
def replace_keys(obj, old_key, new_key):
|
def replace_keys(obj, old_key, new_key):
|
||||||
if isinstance(obj, dict):
|
if isinstance(obj, dict):
|
||||||
|
@ -192,7 +192,7 @@ class HttpStratumInterface(PollingInterface):
|
||||||
def send(self, messages):
|
def send(self, messages):
|
||||||
import urllib2, json, time, cookielib
|
import urllib2, json, time, cookielib
|
||||||
|
|
||||||
if self.proxy["mode"] != "off":
|
if self.proxy["mode"] != "none":
|
||||||
import socks
|
import socks
|
||||||
socks.setdefaultproxy(proxy_modes.index(self.proxy["mode"]), self.proxy["host"], int(self.proxy["port"]) )
|
socks.setdefaultproxy(proxy_modes.index(self.proxy["mode"]), self.proxy["host"], int(self.proxy["port"]) )
|
||||||
socks.wrapmodule(urllib2)
|
socks.wrapmodule(urllib2)
|
||||||
|
@ -260,7 +260,7 @@ class TcpStratumInterface(Interface):
|
||||||
|
|
||||||
def init_socket(self):
|
def init_socket(self):
|
||||||
global proxy_modes
|
global proxy_modes
|
||||||
if self.proxy["mode"] == "off":
|
if self.proxy["mode"] == "none":
|
||||||
self.s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
|
self.s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
|
||||||
else:
|
else:
|
||||||
import socks
|
import socks
|
||||||
|
@ -460,6 +460,7 @@ class WalletSynchronizer(threading.Thread):
|
||||||
if self.loop:
|
if self.loop:
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
# Server has been changed. Copy callback for new interface.
|
# Server has been changed. Copy callback for new interface.
|
||||||
|
self.proxy = self.interface.proxy
|
||||||
self.init_interface()
|
self.init_interface()
|
||||||
self.start_interface()
|
self.start_interface()
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -3,7 +3,7 @@ import os
|
||||||
from util import user_dir
|
from util import user_dir
|
||||||
|
|
||||||
class SimpleConfig:
|
class SimpleConfig:
|
||||||
default_options = {"gui": "lite", "proxy": { "mode": "off", "host":"localhost", "port":"8080" } }
|
default_options = {"gui": "lite", "proxy": { "mode": "none", "host":"localhost", "port":"8080" } }
|
||||||
|
|
||||||
def set_key(self, key, value, save = True):
|
def set_key(self, key, value, save = True):
|
||||||
self.config[key] = value
|
self.config[key] = value
|
||||||
|
|
|
@ -347,15 +347,16 @@ class Wallet:
|
||||||
def is_up_to_date(self):
|
def is_up_to_date(self):
|
||||||
return self.interface.responses.empty() and not self.interface.unanswered_requests
|
return self.interface.responses.empty() and not self.interface.unanswered_requests
|
||||||
|
|
||||||
def set_server(self, server):
|
def set_server(self, server, proxy):
|
||||||
# raise an error if the format isnt correct
|
# raise an error if the format isnt correct
|
||||||
a,b,c = server.split(':')
|
a,b,c = server.split(':')
|
||||||
b = int(b)
|
b = int(b)
|
||||||
assert c in ['t', 'h', 'n']
|
assert c in ['t', 'h', 'n']
|
||||||
# set the server
|
# set the server
|
||||||
if server != self.server:
|
if server != self.server or proxy != self.interface.proxy:
|
||||||
self.server = server
|
self.server = server
|
||||||
self.save()
|
self.save()
|
||||||
|
self.interface.proxy = proxy
|
||||||
self.interface.is_connected = False # this exits the polling loop
|
self.interface.is_connected = False # this exits the polling loop
|
||||||
self.interface.poke()
|
self.interface.poke()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue