Support for socksproxytype plugins in Settings dialog
This commit is contained in:
parent
5160a68c28
commit
e3ccc3c7c8
|
@ -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(
|
||||
|
|
|
@ -419,12 +419,12 @@
|
|||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>SOCKS4a</string>
|
||||
<string notr="true">SOCKS4a</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>SOCKS5</string>
|
||||
<string notr="true">SOCKS5</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
|
|
Reference in New Issue
Block a user