|
|
@ -1,3 +1,4 @@ |
|
|
|
import ConfigParser |
|
|
|
import os |
|
|
|
import sys |
|
|
|
|
|
|
@ -16,6 +17,7 @@ import tempfile |
|
|
|
import widgets |
|
|
|
from bmconfigparser import BMConfigParser |
|
|
|
from helper_sql import sqlExecute, sqlStoredProcedure |
|
|
|
from helper_startup import start_proxyconfig |
|
|
|
from network.asyncore_pollchoose import set_rates |
|
|
|
from tr import _translate |
|
|
|
|
|
|
@ -32,6 +34,16 @@ class SettingsDialog(QtGui.QDialog): |
|
|
|
self.net_restart_needed = False |
|
|
|
self.timer = QtCore.QTimer() |
|
|
|
|
|
|
|
try: |
|
|
|
import pkg_resources |
|
|
|
except ImportError: |
|
|
|
pass |
|
|
|
else: |
|
|
|
# Append proxy types defined in plugins |
|
|
|
for ep in pkg_resources.iter_entry_points( |
|
|
|
'bitmessage.proxyconfig'): |
|
|
|
self.comboBoxProxyType.addItem(ep.name) |
|
|
|
|
|
|
|
self.lineEditMaxOutboundConnections.setValidator( |
|
|
|
QtGui.QIntValidator(0, 8, self.lineEditMaxOutboundConnections)) |
|
|
|
|
|
|
@ -117,21 +129,16 @@ class SettingsDialog(QtGui.QDialog): |
|
|
|
self.checkBoxOnionOnly.setChecked( |
|
|
|
config.safeGetBoolean('bitmessagesettings', 'onionservicesonly')) |
|
|
|
|
|
|
|
proxy_type = config.safeGet( |
|
|
|
'bitmessagesettings', 'socksproxytype', 'none') |
|
|
|
if proxy_type == 'none': |
|
|
|
self.comboBoxProxyType.setCurrentIndex(0) |
|
|
|
self.lineEditSocksHostname.setEnabled(False) |
|
|
|
self.lineEditSocksPort.setEnabled(False) |
|
|
|
self.lineEditSocksUsername.setEnabled(False) |
|
|
|
self.lineEditSocksPassword.setEnabled(False) |
|
|
|
self.checkBoxAuthentication.setEnabled(False) |
|
|
|
self.checkBoxSocksListen.setEnabled(False) |
|
|
|
self.checkBoxOnionOnly.setEnabled(False) |
|
|
|
elif proxy_type == 'SOCKS4a': |
|
|
|
self.comboBoxProxyType.setCurrentIndex(1) |
|
|
|
elif proxy_type == 'SOCKS5': |
|
|
|
self.comboBoxProxyType.setCurrentIndex(2) |
|
|
|
try: |
|
|
|
# Get real value, not temporary |
|
|
|
self._proxy_type = ConfigParser.SafeConfigParser.get( |
|
|
|
config, 'bitmessagesettings', 'socksproxytype') |
|
|
|
except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): |
|
|
|
self._proxy_type = 'none' |
|
|
|
self.comboBoxProxyType.setCurrentIndex( |
|
|
|
0 if self._proxy_type == 'none' |
|
|
|
else self.comboBoxProxyType.findText(self._proxy_type)) |
|
|
|
self.comboBoxProxyTypeChanged(self.comboBoxProxyType.currentIndex()) |
|
|
|
|
|
|
|
self.lineEditSocksHostname.setText( |
|
|
|
config.get('bitmessagesettings', 'sockshostname')) |
|
|
@ -219,7 +226,7 @@ class SettingsDialog(QtGui.QDialog): |
|
|
|
self.checkBoxAuthentication.setEnabled(False) |
|
|
|
self.checkBoxSocksListen.setEnabled(False) |
|
|
|
self.checkBoxOnionOnly.setEnabled(False) |
|
|
|
elif comboBoxIndex in (1, 2): |
|
|
|
else: |
|
|
|
self.lineEditSocksHostname.setEnabled(True) |
|
|
|
self.lineEditSocksPort.setEnabled(True) |
|
|
|
self.checkBoxAuthentication.setEnabled(True) |
|
|
@ -321,27 +328,22 @@ class SettingsDialog(QtGui.QDialog): |
|
|
|
upnpThread = upnp.uPnPThread() |
|
|
|
upnpThread.start() |
|
|
|
|
|
|
|
proxy_type = self.config.safeGet( |
|
|
|
'bitmessagesettings', 'socksproxytype', 'none') |
|
|
|
if ( |
|
|
|
proxy_type == 'none' and |
|
|
|
self.comboBoxProxyType.currentText()[0:5] == 'SOCKS' and |
|
|
|
shared.statusIconColor != 'red' |
|
|
|
): |
|
|
|
self.net_restart_needed = True |
|
|
|
if ( |
|
|
|
proxy_type[0:5] == 'SOCKS' and |
|
|
|
self.comboBoxProxyType.currentText()[0:5] != 'SOCKS' |
|
|
|
): |
|
|
|
proxytype_index = self.comboBoxProxyType.currentIndex() |
|
|
|
if proxytype_index == 0: |
|
|
|
if self._proxy_type != 'none' and shared.statusIconColor != 'red': |
|
|
|
self.net_restart_needed = True |
|
|
|
elif self.comboBoxProxyType.currentText() != self._proxy_type: |
|
|
|
self.net_restart_needed = True |
|
|
|
self.parent.statusbar.clearMessage() |
|
|
|
|
|
|
|
self.config.set( |
|
|
|
'bitmessagesettings', 'socksproxytype', |
|
|
|
str(self.comboBoxProxyType.currentText()) |
|
|
|
if self.comboBoxProxyType.currentText()[0:5] == 'SOCKS' |
|
|
|
else 'none' |
|
|
|
'none' if self.comboBoxProxyType.currentIndex() == 0 |
|
|
|
else str(self.comboBoxProxyType.currentText()) |
|
|
|
) |
|
|
|
if proxytype_index > 2: # last literal proxytype in ui |
|
|
|
start_proxyconfig() |
|
|
|
|
|
|
|
self.config.set('bitmessagesettings', 'socksauthentication', str( |
|
|
|
self.checkBoxAuthentication.isChecked())) |
|
|
|
self.config.set('bitmessagesettings', 'sockshostname', str( |
|
|
|