mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 04:52:59 +01:00
Merge pull request #87 from UdjinM6/110_fix_masternode_conf_strict
make masternode.conf loading more strict
This commit is contained in:
commit
7418ae7e35
@ -80,7 +80,11 @@ bool AppInit(int argc, char* argv[])
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
masternodeConfig.read(GetMasternodeConfigFile());
|
std::string strErr;
|
||||||
|
if(!masternodeConfig.read(GetMasternodeConfigFile(), strErr)) {
|
||||||
|
fprintf(stderr,"Error reading masternode configuration file: %s\n", strErr.c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause)
|
// Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause)
|
||||||
if (!SelectParamsFromCommandLine()) {
|
if (!SelectParamsFromCommandLine()) {
|
||||||
|
@ -4,29 +4,31 @@
|
|||||||
CMasternodeConfig masternodeConfig;
|
CMasternodeConfig masternodeConfig;
|
||||||
|
|
||||||
void CMasternodeConfig::add(std::string alias, std::string ip, std::string privKey, std::string txHash, std::string outputIndex) {
|
void CMasternodeConfig::add(std::string alias, std::string ip, std::string privKey, std::string txHash, std::string outputIndex) {
|
||||||
CMasternodeEntry cme(alias, ip, privKey, txHash, outputIndex);
|
CMasternodeEntry cme(alias, ip, privKey, txHash, outputIndex);
|
||||||
entries.push_back(cme);
|
entries.push_back(cme);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMasternodeConfig::read(boost::filesystem::path path) {
|
bool CMasternodeConfig::read(boost::filesystem::path path, std::string& strErr) {
|
||||||
boost::filesystem::ifstream streamConfig(GetMasternodeConfigFile());
|
boost::filesystem::ifstream streamConfig(GetMasternodeConfigFile());
|
||||||
if (!streamConfig.good()) {
|
if (!streamConfig.good()) {
|
||||||
return; // No masternode.conf file is OK
|
return true; // No masternode.conf file is OK
|
||||||
}
|
}
|
||||||
|
|
||||||
for(std::string line; std::getline(streamConfig, line); )
|
for(std::string line; std::getline(streamConfig, line); )
|
||||||
{
|
{
|
||||||
if(line.empty()) {
|
if(line.empty()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
std::istringstream iss(line);
|
std::istringstream iss(line);
|
||||||
std::string alias, ip, privKey, txHash, outputIndex;
|
std::string alias, ip, privKey, txHash, outputIndex;
|
||||||
if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) {
|
if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) {
|
||||||
LogPrintf("CMasternodeConfig::read - Could not parse masternode.conf. Line: %s\n", line.c_str());
|
strErr = "Could not parse masternode.conf line: " + line;
|
||||||
continue;
|
streamConfig.close();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
add(alias, ip, privKey, txHash, outputIndex);
|
add(alias, ip, privKey, txHash, outputIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
streamConfig.close();
|
streamConfig.close();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
void read(boost::filesystem::path path);
|
bool read(boost::filesystem::path path, std::string& strErr);
|
||||||
void add(std::string alias, std::string ip, std::string privKey, std::string txHash, std::string outputIndex);
|
void add(std::string alias, std::string ip, std::string privKey, std::string txHash, std::string outputIndex);
|
||||||
|
|
||||||
std::vector<CMasternodeEntry>& getEntries() {
|
std::vector<CMasternodeEntry>& getEntries() {
|
||||||
|
@ -534,7 +534,12 @@ int main(int argc, char *argv[])
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
masternodeConfig.read(GetMasternodeConfigFile());
|
string strErr;
|
||||||
|
if(!masternodeConfig.read(GetMasternodeConfigFile(), strErr)) {
|
||||||
|
QMessageBox::critical(0, QObject::tr("Darkcoin"),
|
||||||
|
QObject::tr("Error reading masternode configuration file: %1").arg(strErr.c_str()));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/// 7. Determine network (and switch to network specific options)
|
/// 7. Determine network (and switch to network specific options)
|
||||||
// - Do not call Params() before this step
|
// - Do not call Params() before this step
|
||||||
|
Loading…
Reference in New Issue
Block a user