diff options
author | psychocrypt <psychocrypt@users.noreply.github.com> | 2017-12-06 22:24:33 +0100 |
---|---|---|
committer | psychocrypt <psychocrypt@users.noreply.github.com> | 2017-12-06 23:30:43 +0100 |
commit | 961de0f4855bda890a48090c17ffd213bdab4ef0 (patch) | |
tree | da5bd19d54c286a56b52dc931698dc8925aac177 /xmrstak/misc | |
parent | 47a4d031bcc3159a298afaae6797cd19240ad0a1 (diff) | |
download | xmr-stak-961de0f4855bda890a48090c17ffd213bdab4ef0.zip xmr-stak-961de0f4855bda890a48090c17ffd213bdab4ef0.tar.gz |
fix broken pool option overwrite via CLI
fix #340
With #90 the option to overwrite the pool settings via CLI options is broken.
This pull request will allow to overwrite the options of the pool with the highest weighting.
Diffstat (limited to 'xmrstak/misc')
-rw-r--r-- | xmrstak/misc/executor.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/xmrstak/misc/executor.cpp b/xmrstak/misc/executor.cpp index c500b21..6f34d80 100644 --- a/xmrstak/misc/executor.cpp +++ b/xmrstak/misc/executor.cpp @@ -528,6 +528,30 @@ void executor::ex_main() pools.emplace_front(0, "donate.xmr-stak.net:4444", "", "", 0.0, true, false, "", true); } + /* find the pool with the highest weighting to allow overwriting of the + * pool settings via command line options. + */ + std::vector<jpsock*> sorted_pools; + sorted_pools.reserve(pools.size()); + for(jpsock& pool : pools) + sorted_pools.emplace_back(&pool); + std::sort(sorted_pools.begin(), sorted_pools.end(), [](jpsock* a, jpsock* b) { return b->get_pool_weight(true) < a->get_pool_weight(true); }); + + // overwrite pool address if cli option is used + auto& poolURL = xmrstak::params::inst().poolURL; + if(!poolURL.empty()) + { + sorted_pools[0]->set_pool_addr(poolURL.c_str()); + } + // overwrite user pool login name if cli option is used + auto& poolUsername = xmrstak::params::inst().poolUsername; + if(!poolUsername.empty()) + sorted_pools[0]->set_user_login(poolUsername.c_str()); + // overwrite user pool login password if cli option is used + auto& poolPasswd = xmrstak::params::inst().poolPasswd; + if(!poolPasswd.empty()) + sorted_pools[0]->set_user_passwd(poolPasswd.c_str()); + ex_event ev; std::thread clock_thd(&executor::ex_clock_thd, this); |