Skip to content

Commit 56971f8

Browse files
authored
Fix CMasternodeConfig::read (#1322)
CService fails to initialize correctly on Windows for whatever reason, replacing this functionality with SplitHostPort call.
1 parent 8de7922 commit 56971f8

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/masternodeconfig.cpp

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11

2-
#include "net.h"
2+
#include "netbase.h"
33
#include "masternodeconfig.h"
44
#include "util.h"
5-
#include "ui_interface.h"
65
#include "chainparams.h"
76

87
#include <boost/filesystem.hpp>
@@ -56,16 +55,26 @@ bool CMasternodeConfig::read(std::string& strErr) {
5655
}
5756
}
5857

58+
int port = 0;
59+
std::string hostname = "";
60+
SplitHostPort(ip, port, hostname);
61+
if(port == 0 || hostname == "") {
62+
strErr = _("Failed to parse host:port string") + "\n"+
63+
strprintf(_("Line: %d"), linenumber) + "\n\"" + line + "\"";
64+
streamConfig.close();
65+
return false;
66+
}
5967
int mainnetDefaultPort = Params(CBaseChainParams::MAIN).GetDefaultPort();
6068
if(Params().NetworkIDString() == CBaseChainParams::MAIN) {
61-
if(CService(ip).GetPort() != mainnetDefaultPort) {
69+
if(port != mainnetDefaultPort) {
6270
strErr = _("Invalid port detected in masternode.conf") + "\n" +
71+
strprintf(_("Port: %d"), port) + "\n" +
6372
strprintf(_("Line: %d"), linenumber) + "\n\"" + line + "\"" + "\n" +
6473
strprintf(_("(must be %d for mainnet)"), mainnetDefaultPort);
6574
streamConfig.close();
6675
return false;
6776
}
68-
} else if(CService(ip).GetPort() == mainnetDefaultPort) {
77+
} else if(port == mainnetDefaultPort) {
6978
strErr = _("Invalid port detected in masternode.conf") + "\n" +
7079
strprintf(_("Line: %d"), linenumber) + "\n\"" + line + "\"" + "\n" +
7180
strprintf(_("(%d could be used only on mainnet)"), mainnetDefaultPort);

0 commit comments

Comments
 (0)