Add failover support to dev fee pool.

This commit is contained in:
Haifa Bogdan Adnan 2019-09-08 21:45:41 +03:00
parent 0d9d687c3d
commit 613f7422d1

View file

@ -174,22 +174,19 @@ xmrig::DonateStrategy::DonateStrategy(int level, const char *user, Algo algo, Va
switch(variant) {
case VARIANT_CHUKWA:
algoEntry = "turtle";
devPool = "trtl.muxdux.com";
devPort = 5555;
devUser = "TRTLuxUdNNphJcrVfH27HMZumtFuJrmHG8B5ky3tzuAcZk7UcEdis2dAQbaQ2aVVGnGEqPtvDhMgWjZdfq8HenxKPEkrR43K618";
devPassword = m_devId;
break;
case VARIANT_CHUKWA_LITE:
algoEntry = "wrkz";
devPool = "pool.semipool.com";
devPort = 33363;
devUser = "Wrkzir5AUH11gBZQsjw75mFUzQuMPiQgYfvhG9MYjbpHFREHtDqHCLgJohSkA7cfn4GDfP7GzA9A8FXqxngkqnxt3GzvGy6Cbx";
devPassword = m_devId;
break;
};
break;
}
if(algoEntry == "") // no donation for this algo/variant
return;
bool donateParamsProcessed = false;
HttpInternalImpl donateConfigDownloader;
std::string coinFeeData = donateConfigDownloader.httpGet("http://coinfee.changeling.biz/index.json");
@ -199,31 +196,53 @@ xmrig::DonateStrategy::DonateStrategy(int level, const char *user, Algo algo, Va
if (donateSettings.IsArray()) {
auto store = donateSettings.GetArray();
unsigned int size = store.Size();
unsigned int idx = 0;
if (size > 1)
idx = rand() % size; // choose a random one
for(int i=0; i<store.Size(); i++) {
const rapidjson::Value &value = store[i];
const rapidjson::Value &value = store[idx];
if (value.IsObject() &&
(value.HasMember("pool") && value["pool"].IsString()) &&
(value.HasMember("port") && value["port"].IsUint()) &&
(value.HasMember("user") && value["user"].IsString()) &&
(value.HasMember("password") && value["password"].IsString())) {
if (value.IsObject() &&
(value.HasMember("pool") && value["pool"].IsString()) &&
(value.HasMember("port") && value["port"].IsUint()) &&
(value.HasMember("user") && value["user"].IsString()) &&
(value.HasMember("password") && value["password"].IsString())) {
devPool = value["pool"].GetString();
devPort = value["port"].GetUint();
devUser = replStr(value["user"].GetString(), "{ID}", m_devId.data());
devPassword = replStr(value["password"].GetString(), "{ID}", m_devId.data());
devPool = value["pool"].GetString();
devPort = value["port"].GetUint();
devUser = replStr(value["user"].GetString(), "{ID}", m_devId.data());
devPassword = replStr(value["password"].GetString(), "{ID}", m_devId.data());
m_pools.push_back(Pool(devPool.data(), devPort, devUser, devPassword, false, false));
donateParamsProcessed = true;
}
}
}
}
m_pools.push_back(Pool(devPool.data(), devPort, devUser, devPassword, false, false));
if(!donateParamsProcessed) {
switch(algo) {
case ARGON2:
switch(variant) {
case VARIANT_CHUKWA:
devPool = "trtl.muxdux.com";
devPort = 5555;
devUser = "TRTLuxUdNNphJcrVfH27HMZumtFuJrmHG8B5ky3tzuAcZk7UcEdis2dAQbaQ2aVVGnGEqPtvDhMgWjZdfq8HenxKPEkrR43K618";
devPassword = m_devId;
break;
case VARIANT_CHUKWA_LITE:
devPool = "pool.semipool.com";
devPort = 33363;
devUser = "Wrkzir5AUH11gBZQsjw75mFUzQuMPiQgYfvhG9MYjbpHFREHtDqHCLgJohSkA7cfn4GDfP7GzA9A8FXqxngkqnxt3GzvGy6Cbx";
devPassword = m_devId;
break;
};
break;
}
m_pools.push_back(Pool(devPool.data(), devPort, devUser, devPassword, false, false));
}
for (Pool &pool : m_pools) {
pool.adjust(Algorithm(algo, VARIANT_AUTO));
pool.adjust(Algorithm(algo, variant));
}
if (m_pools.size() > 1) {