UPnP GUI
Settings GUI now contains a checkbox for UPnP and auto starts/stops the thread when changed. Default UPnP socket timeout decreased for faster thread starting/stopping
This commit is contained in:
parent
50be5a2b4c
commit
48b9e50397
|
@ -2583,6 +2583,12 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
"MainWindow", "You must restart Bitmessage for the port number change to take effect."))
|
"MainWindow", "You must restart Bitmessage for the port number change to take effect."))
|
||||||
shared.config.set('bitmessagesettings', 'port', str(
|
shared.config.set('bitmessagesettings', 'port', str(
|
||||||
self.settingsDialogInstance.ui.lineEditTCPPort.text()))
|
self.settingsDialogInstance.ui.lineEditTCPPort.text()))
|
||||||
|
if self.settingsDialogInstance.ui.checkBoxUPnP.isChecked() != shared.safeConfigGetBoolean('bitmessagesettings', 'upnp'):
|
||||||
|
shared.config.set('bitmessagesettings', 'upnp', str(self.settingsDialogInstance.ui.checkBoxUPnP.isChecked()))
|
||||||
|
if self.settingsDialogInstance.ui.checkBoxUPnP.isChecked():
|
||||||
|
import upnp
|
||||||
|
upnpThread = upnp.uPnPThread()
|
||||||
|
upnpThread.start()
|
||||||
#print 'self.settingsDialogInstance.ui.comboBoxProxyType.currentText()', self.settingsDialogInstance.ui.comboBoxProxyType.currentText()
|
#print 'self.settingsDialogInstance.ui.comboBoxProxyType.currentText()', self.settingsDialogInstance.ui.comboBoxProxyType.currentText()
|
||||||
#print 'self.settingsDialogInstance.ui.comboBoxProxyType.currentText())[0:5]', self.settingsDialogInstance.ui.comboBoxProxyType.currentText()[0:5]
|
#print 'self.settingsDialogInstance.ui.comboBoxProxyType.currentText())[0:5]', self.settingsDialogInstance.ui.comboBoxProxyType.currentText()[0:5]
|
||||||
if shared.config.get('bitmessagesettings', 'socksproxytype') == 'none' and self.settingsDialogInstance.ui.comboBoxProxyType.currentText()[0:5] == 'SOCKS':
|
if shared.config.get('bitmessagesettings', 'socksproxytype') == 'none' and self.settingsDialogInstance.ui.comboBoxProxyType.currentText()[0:5] == 'SOCKS':
|
||||||
|
@ -4127,6 +4133,8 @@ class settingsDialog(QtGui.QDialog):
|
||||||
# On the Network settings tab:
|
# On the Network settings tab:
|
||||||
self.ui.lineEditTCPPort.setText(str(
|
self.ui.lineEditTCPPort.setText(str(
|
||||||
shared.config.get('bitmessagesettings', 'port')))
|
shared.config.get('bitmessagesettings', 'port')))
|
||||||
|
self.ui.checkBoxUPnP.setChecked(
|
||||||
|
shared.safeConfigGetBoolean('bitmessagesettings', 'upnp'))
|
||||||
self.ui.checkBoxAuthentication.setChecked(shared.config.getboolean(
|
self.ui.checkBoxAuthentication.setChecked(shared.config.getboolean(
|
||||||
'bitmessagesettings', 'socksauthentication'))
|
'bitmessagesettings', 'socksauthentication'))
|
||||||
self.ui.checkBoxSocksListen.setChecked(shared.config.getboolean(
|
self.ui.checkBoxSocksListen.setChecked(shared.config.getboolean(
|
||||||
|
|
|
@ -120,15 +120,21 @@ class Ui_settingsDialog(object):
|
||||||
self.groupBox1.setObjectName(_fromUtf8("groupBox1"))
|
self.groupBox1.setObjectName(_fromUtf8("groupBox1"))
|
||||||
self.gridLayout_3 = QtGui.QGridLayout(self.groupBox1)
|
self.gridLayout_3 = QtGui.QGridLayout(self.groupBox1)
|
||||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||||
spacerItem = QtGui.QSpacerItem(125, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
#spacerItem = QtGui.QSpacerItem(125, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.gridLayout_3.addItem(spacerItem, 0, 0, 1, 1)
|
#self.gridLayout_3.addItem(spacerItem, 0, 0, 1, 1)
|
||||||
self.label = QtGui.QLabel(self.groupBox1)
|
self.label = QtGui.QLabel(self.groupBox1)
|
||||||
self.label.setObjectName(_fromUtf8("label"))
|
self.label.setObjectName(_fromUtf8("label"))
|
||||||
self.gridLayout_3.addWidget(self.label, 0, 1, 1, 1)
|
self.gridLayout_3.addWidget(self.label, 0, 0, 1, 1, QtCore.Qt.AlignRight)
|
||||||
self.lineEditTCPPort = QtGui.QLineEdit(self.groupBox1)
|
self.lineEditTCPPort = QtGui.QLineEdit(self.groupBox1)
|
||||||
self.lineEditTCPPort.setMaximumSize(QtCore.QSize(70, 16777215))
|
self.lineEditTCPPort.setMaximumSize(QtCore.QSize(70, 16777215))
|
||||||
self.lineEditTCPPort.setObjectName(_fromUtf8("lineEditTCPPort"))
|
self.lineEditTCPPort.setObjectName(_fromUtf8("lineEditTCPPort"))
|
||||||
self.gridLayout_3.addWidget(self.lineEditTCPPort, 0, 2, 1, 1)
|
self.gridLayout_3.addWidget(self.lineEditTCPPort, 0, 1, 1, 1, QtCore.Qt.AlignLeft)
|
||||||
|
self.labelUPnP = QtGui.QLabel(self.groupBox1)
|
||||||
|
self.labelUPnP.setObjectName(_fromUtf8("labelUPnP"))
|
||||||
|
self.gridLayout_3.addWidget(self.labelUPnP, 0, 2, 1, 1, QtCore.Qt.AlignRight)
|
||||||
|
self.checkBoxUPnP = QtGui.QCheckBox(self.groupBox1)
|
||||||
|
self.checkBoxUPnP.setObjectName(_fromUtf8("checkBoxUPnP"))
|
||||||
|
self.gridLayout_3.addWidget(self.checkBoxUPnP, 0, 3, 1, 1, QtCore.Qt.AlignLeft)
|
||||||
self.gridLayout_4.addWidget(self.groupBox1, 0, 0, 1, 1)
|
self.gridLayout_4.addWidget(self.groupBox1, 0, 0, 1, 1)
|
||||||
self.groupBox_3 = QtGui.QGroupBox(self.tabNetworkSettings)
|
self.groupBox_3 = QtGui.QGroupBox(self.tabNetworkSettings)
|
||||||
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
|
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
|
||||||
|
@ -449,6 +455,7 @@ class Ui_settingsDialog(object):
|
||||||
self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabUserInterface), _translate("settingsDialog", "User Interface", None))
|
self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabUserInterface), _translate("settingsDialog", "User Interface", None))
|
||||||
self.groupBox1.setTitle(_translate("settingsDialog", "Listening port", None))
|
self.groupBox1.setTitle(_translate("settingsDialog", "Listening port", None))
|
||||||
self.label.setText(_translate("settingsDialog", "Listen for connections on port:", None))
|
self.label.setText(_translate("settingsDialog", "Listen for connections on port:", None))
|
||||||
|
self.labelUPnP.setText(_translate("settingsDialog", "UPnP:", None))
|
||||||
self.groupBox_3.setTitle(_translate("settingsDialog", "Bandwidth limit", None))
|
self.groupBox_3.setTitle(_translate("settingsDialog", "Bandwidth limit", None))
|
||||||
self.label_24.setText(_translate("settingsDialog", "Maximum download rate (kB/s): [0: unlimited]", None))
|
self.label_24.setText(_translate("settingsDialog", "Maximum download rate (kB/s): [0: unlimited]", None))
|
||||||
self.label_25.setText(_translate("settingsDialog", "Maximum upload rate (kB/s): [0: unlimited]", None))
|
self.label_25.setText(_translate("settingsDialog", "Maximum upload rate (kB/s): [0: unlimited]", None))
|
||||||
|
|
|
@ -168,7 +168,7 @@ class uPnPThread(threading.Thread):
|
||||||
self.routers = []
|
self.routers = []
|
||||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
self.sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
|
self.sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
|
||||||
self.sock.settimeout(10)
|
self.sock.settimeout(2)
|
||||||
self.sendSleep = 60
|
self.sendSleep = 60
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
@ -176,12 +176,12 @@ class uPnPThread(threading.Thread):
|
||||||
|
|
||||||
logger.debug("Starting UPnP thread")
|
logger.debug("Starting UPnP thread")
|
||||||
lastSent = 0
|
lastSent = 0
|
||||||
while shared.shutdown == 0:
|
while shared.shutdown == 0 and shared.safeConfigGetBoolean('bitmessagesettings', 'upnp'):
|
||||||
if time.time() - lastSent > self.sendSleep and len(self.routers) == 0:
|
if time.time() - lastSent > self.sendSleep and len(self.routers) == 0:
|
||||||
self.sendSearchRouter()
|
self.sendSearchRouter()
|
||||||
lastSent = time.time()
|
lastSent = time.time()
|
||||||
try:
|
try:
|
||||||
while shared.shutdown == 0:
|
while shared.shutdown == 0 and shared.safeConfigGetBoolean('bitmessagesettings', 'upnp'):
|
||||||
resp,(ip,port) = self.sock.recvfrom(1000)
|
resp,(ip,port) = self.sock.recvfrom(1000)
|
||||||
if resp is None:
|
if resp is None:
|
||||||
continue
|
continue
|
||||||
|
|
Reference in New Issue
Block a user