allowing for max connection configuration #939
|
@ -2391,6 +2391,14 @@ class MyForm(settingsmixin.SMainWindow):
|
|||
QMessageBox.about(self, _translate("MainWindow", "Number needed"), _translate(
|
||||
"MainWindow", "Your maximum download and upload rate must be numbers. Ignoring what you typed."))
|
||||
|
||||
|
||||
try:
|
||||
# Ensure we have an integer
|
||||
Instead of this whole exception handling, try something like For a more complex example look into newchandialog.py and addressvalidator.py, in your case you don't need a new validator class, you can use the QIntValidator as it is. Instead of this whole exception handling, try something like
`lineEditMaxOutboundConnections.setValidator(QIntValidator(1, 1024, lineEditMaxOutboundConnections))`
in settings.py (1 being the lower limit, 1024 the top).
For a more complex example look into newchandialog.py and addressvalidator.py, in your case you don't need a new validator class, you can use the QIntValidator as it is.
PeterSurda
commented
👍 👍
|
||||
BMConfigParser().set('bitmessagesettings', 'maxoutboundconnections', str(
|
||||
int(float(self.settingsDialogInstance.ui.lineEditMaxOutboundConnections.text()))))
|
||||
except:
|
||||
QMessageBox.about(self, _translate("MainWindow", "Number needed"), _translate(
|
||||
"MainWindow", "Your maximum outbound connections must be a number. Ignoring what you typed."))
|
||||
|
||||
BMConfigParser().set('bitmessagesettings', 'namecoinrpctype',
|
||||
self.settingsDialogInstance.getNamecoinType())
|
||||
BMConfigParser().set('bitmessagesettings', 'namecoinrpchost', str(
|
||||
|
@ -4075,6 +4083,8 @@ class settingsDialog(QtGui.QDialog):
|
|||
BMConfigParser().get('bitmessagesettings', 'sockspassword')))
|
||||
QtCore.QObject.connect(self.ui.comboBoxProxyType, QtCore.SIGNAL(
|
||||
"currentIndexChanged(int)"), self.comboBoxProxyTypeChanged)
|
||||
self.ui.lineEditMaxOutboundConnections.setText(str(
|
||||
shared.config.get('bitmessagesettings', 'maxoutboundconnections')))
|
||||
self.ui.lineEditMaxDownloadRate.setText(str(
|
||||
BMConfigParser().get('bitmessagesettings', 'maxdownloadrate')))
|
||||
self.ui.lineEditMaxUploadRate.setText(str(
|
||||
|
|
|
@ -154,6 +154,18 @@ class Ui_settingsDialog(object):
|
|||
self.lineEditMaxUploadRate.setMaximumSize(QtCore.QSize(60, 16777215))
|
||||
self.lineEditMaxUploadRate.setObjectName(_fromUtf8("lineEditMaxUploadRate"))
|
||||
self.gridLayout_9.addWidget(self.lineEditMaxUploadRate, 1, 2, 1, 1)
|
||||
self.label_26 = QtGui.QLabel(self.groupBox_3)
|
||||
self.label_26.setObjectName(_fromUtf8("label_26"))
|
||||
self.gridLayout_9.addWidget(self.label_26, 2, 1, 1, 1)
|
||||
self.lineEditMaxOutboundConnections = QtGui.QLineEdit(self.groupBox_3)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEditMaxOutboundConnections.sizePolicy().hasHeightForWidth())
|
||||
self.lineEditMaxOutboundConnections.setSizePolicy(sizePolicy)
|
||||
self.lineEditMaxOutboundConnections.setMaximumSize(QtCore.QSize(60, 16777215))
|
||||
self.lineEditMaxOutboundConnections.setObjectName(_fromUtf8("lineEditMaxOutboundConnections"))
|
||||
how about also how about also
`self.lineEditMaxOutboundConnections.setPlaceholderText(_fromUtf8("8"))`
|
||||
self.gridLayout_9.addWidget(self.lineEditMaxOutboundConnections, 2, 2, 1, 1)
|
||||
self.gridLayout_4.addWidget(self.groupBox_3, 2, 0, 1, 1)
|
||||
self.groupBox_2 = QtGui.QGroupBox(self.tabNetworkSettings)
|
||||
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
|
||||
|
@ -459,6 +471,7 @@ class Ui_settingsDialog(object):
|
|||
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_25.setText(_translate("settingsDialog", "Maximum upload rate (kB/s): [0: unlimited]", None))
|
||||
self.label_26.setText(_translate("settingsDialog", "Maximum outbound connections: [0: none]", None))
|
||||
self.groupBox_2.setTitle(_translate("settingsDialog", "Proxy server / Tor", None))
|
||||
self.label_2.setText(_translate("settingsDialog", "Type:", None))
|
||||
self.label_3.setText(_translate("settingsDialog", "Server hostname:", None))
|
||||
|
|
|
@ -317,6 +317,29 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label_26">
|
||||
<property name="text">
|
||||
<string>Maximum outbound connections: [0: none]</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLineEdit" name="lineEditMaxOutboundConnections">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -79,7 +79,7 @@ class outgoingSynSender(threading.Thread, StoppableThread):
|
|||
self.stop.wait(2)
|
||||
while BMConfigParser().safeGetBoolean('bitmessagesettings', 'sendoutgoingconnections') and not self._stopped:
|
||||
self.name = "outgoingSynSender"
|
||||
maximumConnections = 1 if shared.trustedPeer else 8 # maximum number of outgoing connections = 8
|
||||
maximumConnections = 1 if shared.trustedPeer else shared.config.getint('bitmessagesettings', 'maxoutboundconnections')
|
||||
while len(self.selfInitiatedConnections[self.streamNumber]) >= maximumConnections:
|
||||
self.stop.wait(10)
|
||||
if shared.shutdown:
|
||||
|
|
|
@ -433,6 +433,16 @@ class sqlThread(threading.Thread):
|
|||
BMConfigParser().set('bitmessagesettings', 'smtpdeliver', '')
|
||||
if not BMConfigParser().has_option('bitmessagesettings', 'hidetrayconnectionnotifications'):
|
||||
BMConfigParser().set('bitmessagesettings', 'hidetrayconnectionnotifications', 'false')
|
||||
if BMConfigParser().has_option('bitmessagesettings', 'maxoutboundconnections'):
|
||||
try:
|
||||
# Ensure we have an integer
|
||||
int(float(BMConfigParser().get('bitmessagesettings', 'maxoutboundconnections')))
|
||||
Maybe Maybe
`if BMConfigParser().getint('bitmessagesettings', 'maxoutboundconnections'))) < 1:
throw ValueException
`
|
||||
except:
|
||||
And this should be And this should be
`except ValueException:`
because you're supposed to always name the exception. I haven't always done it but in new code we should try to do that.
|
||||
logger.fatal('Your maximum outbound connections must be a number.')
|
||||
This should simply log an error and set it to 8 instead of dying. This should simply log an error and set it to 8 instead of dying.
|
||||
os._exit(0)
|
||||
else:
|
||||
BMConfigParser().set('bitmessagesettings', 'maxoutboundconnections', '8')
|
||||
|
||||
shared.writeKeysFile()
|
||||
|
||||
# Are you hoping to add a new option to the keys.dat file of existing
|
||||
|
|
|
@ -108,6 +108,7 @@ def loadConfig():
|
|||
BMConfigParser().set('bitmessagesettings', 'replybelow', 'False')
|
||||
BMConfigParser().set('bitmessagesettings', 'maxdownloadrate', '0')
|
||||
BMConfigParser().set('bitmessagesettings', 'maxuploadrate', '0')
|
||||
BMConfigParser().set('bitmessagesettings', 'maxoutboundconnections', '8')
|
||||
BMConfigParser().set('bitmessagesettings', 'ttl', '367200')
|
||||
|
||||
#start:UI setting to stop trying to send messages after X days/months
|
||||
|
|
Refer to the immediately preceding options to see how to ensure the user entered a number.