Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Qt: Add network port input box to GUI settings #7107
Conversation
tulip0
commented
Nov 27, 2015
|
It's counterintuitive to most people that Bitcoin Core will refuse to use non-standard ports as anything but a last resort, does the option label need a GUI label or a confirmation popup to reflect this? I suspect a lot of people will be mystified otherwise that they don't get any incoming connections after changing a fairly innocuous looking option. |
jonasschnelli
and 2 others
commented on an outdated diff
Nov 27, 2015
| @@ -45,6 +45,8 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) : | ||
| ui->threadsScriptVerif->setMinimum(-GetNumCores()); | ||
| ui->threadsScriptVerif->setMaximum(MAX_SCRIPTCHECK_THREADS); | ||
| + ui->networkPort->setValidator(new QIntValidator(1, 65535, this)); |
jonasschnelli
Member
|
jonasschnelli
added
the
GUI
label
Nov 27, 2015
|
Concept ACK. We just need to make sure, people can only enter reasonable/valid ports. Because if someone enters port 80, bitcoin-qt is very likely "bricked" (unless he start with root permissions!) until he manages to startup Bitcoin-Qt with a override port setting (through a shell with `-port=8333' or by changing bitcoin.conf). Best would be to ask the user – during startup – if he likes to switch to the standard port if the given port can't be used (permissions or already used through another process). |
laanwj
added
the
Feature
label
Nov 27, 2015
|
Thanks for the feedback @jonasschnelli, I'll work on the things you pointed out. |
|
@Cocosoft Are you still working on this? |
|
@fanquake Yes, I do intend to continue working on this. |
tulip0
commented
Dec 26, 2015
|
Again, this needs a warning that users will get essentially no incoming connections if they change the port. It's not initiative behaviour and will cause significant confusion, I'm not convinced that this option should even be in a configuration window like this to begin with.
The address rumouring system really can't be used in conjunction with anything but a single static port. |
|
Concept ACK. Agree that adding a warning (e.g. as mouseover) would make sense, and that ports should be restricted to valid ports (>1024 at least). |
|
Just FYI, I am still committed to this issue. I am still alive. @laanwj, agreed. |
|
@Cocosoft I've addressed the port number concern, and modified NetworkStyle to store regtest settings separately from testnet.
|
|
@luke-jr, great, thank you for your help! |
Cocosoft
commented on the diff
Feb 18, 2016
| @@ -246,6 +254,18 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in | ||
| fMinimizeToTray = value.toBool(); | ||
| settings.setValue("fMinimizeToTray", fMinimizeToTray); | ||
| break; | ||
| + case NetworkPort: | ||
| + if (settings.value("nNetworkPort") != value) { | ||
| + // If the port input box is empty, set to default port | ||
| + if (value.toString().isEmpty()) { | ||
| + settings.setValue("nNetworkPort", (quint16)Params().GetDefaultPort()); |
Cocosoft
Contributor
|
|
Needs rebase. |
|
@ping Cocosoft. Are you interested to finish this? |
|
@jonasschnelli, I am interested in finishing this. I do understand however if you or someone else wants to take over because it has been idling for so long. I'll try to be on the IRC channel this week. |
Possibly in the case of the GUI it could be non-fatal if binding a port at startup fails. After warning the user there's no harm in continuing with the port closed. This would make this change a lot less dangerous. |
|
@Cocosoft Are you still planning on finishing this? This needs a rebase at least. |
|
@fanquake Yes, I haven't forgotten about this and I still plan to continue, I just need to find time. I fully understand if someone wants to finish it up though, as it has been delayed for so long. |
|
Why did you add an enableOkButton and disableOkButton methods that are unused? |
|
I did not, actually you made them according to Git: $ git blame -L 227,227 src/qt/optionsdialog.cpp
578064a6 (Luke Dashjr 2016-02-12 20:08:00 +0000 227) void OptionsDialog::enableOkButton()I'll rebase again and fix that. Or did you merge the qtnetworkport branch to the master branch of Bitcoinknots? If that's the case, I maybe could just make a new commit removed the unused code. |
|
That code wasn't part of my commit; somehow it got added in when you rebased. Perhaps an accident during a merge? |
|
You're right, sorry. It seems like Philip Kaufman wrote the functions back in 2013: $ git blame -L 227,227 src/qt/optionsdialog.cpp
7e195e84 (Philip Kaufmann 2013-12-03 09:10:10 +0100 227) setOkButtonState(false); |
|
I'm not sure where the functions come from, I can confirm (by a backup) that they existed before the rebase I did. I'll remove them. Edit: Right, I had a merge conflict regarding the functions during the rebase. My bad! |
added a commit
to bitcoinknots/bitcoin
that referenced
this pull request
Jun 28, 2016
|
This needs a rebase. |
Cocosoft
and others
added some commits
Nov 26, 2015
|
As per @jonasschnelli suggestion, I added a Question box on startup to ask if the user wants to use the standard network port if the specified port (whether it's from -port or in GUI) is already in use. |
|
Needs rebase and nit fixes. |
|
Closing due to inactivity. Happy to reopen once this has made progress. |
jonasschnelli
closed this
Oct 18, 2016
added a commit
to bitcoinknots/bitcoin
that referenced
this pull request
Oct 20, 2016
added a commit
to bitcoinknots/bitcoin
that referenced
this pull request
Oct 20, 2016
added a commit
to bitcoinknots/bitcoin
that referenced
this pull request
Feb 18, 2017
added a commit
to bitcoinknots/bitcoin
that referenced
this pull request
Feb 18, 2017
|
Hi @jonasschnelli, I've rebased the branch upon master on cocosoft/bitcoin branch qtnetworkport. I added a warning prompt on startup if the user tries to use a non-standard port that is already in use, and gives the option to use the standard port. Best |
Cocosoft commentedNov 26, 2015
Related issue #7039