Merged features for # 1.6.3 (#114)

- Added shift+click function for multi row selection to Dashboard
- Added -DBUILD_STATIC=ON/OFF option to CMake configuration to create fully static builds
- Added current algo and list of supported_varaints to login message for future usage on proxy
- Added support for latest Stellite (XTL) and Alloy (XAO) variants
- Simplification of configuration, "force-pow-variant" and "cryptonight-lite-ipbc" parameters are now deprecated see [Coin Configuration](https://github.com/Bendr0id/xmrigCC/wiki/Coin-configurations) for guidance
- Fixed leaks in transport shutdown
This commit is contained in:
Ben Gräf 2018-05-23 23:23:49 +02:00 committed by GitHub
parent dc6bcacaed
commit f54ce3c95c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 654 additions and 431 deletions

View file

@ -30,6 +30,8 @@
#include <uv.h>
#include <Options.h>
#include "PowVariant.h"
#include "interfaces/IClientListener.h"
#include "log/Log.h"
#include "net/Client.h"
@ -224,26 +226,34 @@ bool Client::parseJob(const rapidjson::Value &params, int *code)
return false;
}
if (params.HasMember("variant")) {
int variantFromProxy = params["variant"].GetInt();
PowVariant powVariant = Options::i()->powVariant();
switch (variantFromProxy) {
case -1:
job.setPowVersion(Options::POW_AUTODETECT);
break;
case 0:
job.setPowVersion(Options::POW_V1);
break;
case 1:
job.setPowVersion(Options::POW_V2);
break;
default:
break;
if (params.HasMember("algo")) {
std::string algo = params["algo"].GetString();
if (algo.find("/") != std::string::npos) {
powVariant = parseVariant(algo.substr(algo.find("/")+1));
}
} else {
job.setPowVersion(Options::i()->forcePowVersion());
}
if (params.HasMember("variant")) {
const rapidjson::Value &variant = params["variant"];
PowVariant parsedVariant = powVariant;
if (variant.IsInt()) {
parsedVariant = parseVariant(variant.GetInt());
} else if (variant.IsString()) {
parsedVariant = parseVariant(variant.GetString());
}
if (parsedVariant != POW_AUTODETECT) {
powVariant = parsedVariant;
}
}
job.setPowVariant(powVariant);
if (m_job != job) {
m_jobs++;
m_job = std::move(job);
@ -350,6 +360,15 @@ void Client::login()
params.AddMember("pass", rapidjson::StringRef(m_url.password()), allocator);
params.AddMember("agent", rapidjson::StringRef(m_agent), allocator);
params.AddMember("algo", rapidjson::StringRef(Options::i()->algoShortName()), allocator);
rapidjson::Value supportedPowVariantsList(rapidjson::kArrayType);
for (auto& supportedPowVariant : getSupportedPowVariants()) {
supportedPowVariantsList.PushBack(rapidjson::StringRef(supportedPowVariant.c_str()), allocator);
}
params.AddMember("supported-variants", supportedPowVariantsList, allocator);
doc.AddMember("params", params, allocator);
rapidjson::StringBuffer buffer(0, 512);