Initial multiple pools support [2/2].

This commit is contained in:
XMRig 2017-06-27 06:32:17 +03:00
parent 952017ae7a
commit c0dcfc2a97
7 changed files with 35 additions and 54 deletions

View file

@ -143,13 +143,10 @@ Options::Options(int argc, char **argv) :
m_background(false),
m_colors(true),
m_doubleHash(false),
m_keepAlive(false),
m_nicehash(false),
m_ready(false),
m_safe(false),
m_syslog(false),
m_logFile(nullptr),
m_pass(nullptr),
m_algo(0),
m_algoVariant(0),
m_donateLevel(kDonateLevel),
@ -185,18 +182,6 @@ Options::Options(int argc, char **argv) :
return;
}
// if (!m_nicehash && m_url->isNicehash()) {
// m_nicehash = true;
// }
// if (!m_user) {
// m_user = strdup("x");
// }
if (!m_pass) {
m_pass = strdup("x");
}
m_algoVariant = getAlgoVariant();
if (m_algoVariant == AV2_AESNI_DOUBLE || m_algoVariant == AV4_SOFT_AES_DOUBLE) {
m_doubleHash = true;
@ -218,7 +203,6 @@ Options::Options(int argc, char **argv) :
Options::~Options()
{
free(m_pass);
}
@ -236,13 +220,14 @@ bool Options::parseArg(int key, char *arg)
break;
case 'O': /* --userpass */
if (!setUserpass(arg)) {
if (!m_pools.back()->setUserpass(arg)) {
return false;
}
break;
case 'o': /* --url */
if (m_pools[0]->isValid()) {
if (m_pools.size() > 1 || m_pools[0]->isValid()) {
Url *url = new Url(arg);
if (url->isValid()) {
m_pools.push_back(url);
@ -254,6 +239,11 @@ bool Options::parseArg(int key, char *arg)
else {
m_pools[0]->parse(arg);
}
if (!m_pools.back()->isValid()) {
return false;
}
break;
case 'u': /* --user */
@ -315,7 +305,7 @@ bool Options::parseArg(int key, char *arg)
break;
case 'k': /* --keepalive */
m_keepAlive = true;
m_pools.back()->setKeepAlive(true);
break;
case 'V': /* --version */
@ -371,7 +361,7 @@ bool Options::parseArg(int key, char *arg)
break;
case 1006: /* --nicehash */
m_nicehash = true;
m_pools.back()->setNicehash(true);
break;
case 1007: /* --print-time */
@ -474,25 +464,6 @@ bool Options::setAlgo(const char *algo)
}
bool Options::setUserpass(const char *userpass)
{
// const char *p = strchr(userpass, ':');
// if (!p) {
// showUsage(1);
// return false;
// }
//// free(m_user);
// free(m_pass);
//// m_user = static_cast<char*>(calloc(p - userpass + 1, 1));
// strncpy(m_user, userpass, p - userpass);
// m_pass = strdup(p + 1);
return true;
}
int Options::getAlgoVariant() const
{
# ifndef XMRIG_NO_AEON