#include "net.h" #include "masternodeconfig.h" #include "util.h" #include "ui_interface.h" #include CMasternodeConfig masternodeConfig; 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); entries.push_back(cme); } bool CMasternodeConfig::read(std::string& strErr) { int linenumber = 1; boost::filesystem::ifstream streamConfig(GetMasternodeConfigFile()); if (!streamConfig.good()) { return true; // No masternode.conf file is OK } for(std::string line; std::getline(streamConfig, line); linenumber++) { if(line.empty()) { continue; } std::istringstream iss(line); std::string alias, ip, privKey, txHash, outputIndex; if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) { iss.str(line); iss.clear(); if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) { strErr = _("Could not parse masternode.conf") + "\n" + strprintf(_("Line: %d"), linenumber) + "\n\"" + line + "\""; streamConfig.close(); return false; } } if(Params().NetworkID() == CBaseChainParams::MAIN) { if(CService(ip).GetPort() != 9999) { strErr = _("Invalid port detected in masternode.conf") + "\n" + strprintf(_("Line: %d"), linenumber) + "\n\"" + line + "\"" + "\n" + _("(must be 9999 for mainnet)"); streamConfig.close(); return false; } } else if(CService(ip).GetPort() == 9999) { strErr = _("Invalid port detected in masternode.conf") + "\n" + strprintf(_("Line: %d"), linenumber) + "\n\"" + line + "\"" + "\n" + _("(9999 could be used only on mainnet)"); streamConfig.close(); return false; } add(alias, ip, privKey, txHash, outputIndex); } streamConfig.close(); return true; }