mirror of
https://github.com/jwinterm/xmr-stak.git
synced 2026-10-17 05:41:41 +02:00
Fix CLI option start + make cli option pool into an added pool with top priority ithinstead of overwrite
This commit is contained in:
@@ -85,7 +85,8 @@ void help()
|
||||
cout<<" --nvidia FILE NVIDIA backend miner config file"<<endl;
|
||||
#endif
|
||||
cout<<" "<<endl;
|
||||
cout<<"The Following options temporary overwrites the config entries of \nthe pool with the highest weight:"<<endl;
|
||||
cout<<"The following options can be used for automatic start without a guided config,"<<endl;
|
||||
cout<<"If config exists then this pool will be top priority."<<endl;
|
||||
cout<<" -o, --url URL pool url and port, e.g. pool.usxmrpool.com:3333"<<endl;
|
||||
cout<<" -O, --tls-url URL TLS pool url and port, e.g. pool.usxmrpool.com:10443"<<endl;
|
||||
cout<<" -u, --user USERNAME pool user name or wallet address"<<endl;
|
||||
@@ -172,7 +173,7 @@ inline void prompt_once(bool& prompted)
|
||||
}
|
||||
}
|
||||
|
||||
void do_guided_config(bool userSetPasswd)
|
||||
void do_guided_config()
|
||||
{
|
||||
using namespace xmrstak;
|
||||
|
||||
@@ -229,7 +230,7 @@ void do_guided_config(bool userSetPasswd)
|
||||
}
|
||||
|
||||
auto& passwd = params::inst().poolPasswd;
|
||||
if(passwd.empty() && (!userSetPasswd))
|
||||
if(passwd.empty() && !params::inst().userSetPwd)
|
||||
{
|
||||
prompt_once(prompted);
|
||||
|
||||
@@ -373,7 +374,6 @@ int main(int argc, char *argv[])
|
||||
params::inst().executablePrefix += seperator;
|
||||
}
|
||||
|
||||
bool userSetPasswd = false;
|
||||
bool uacDialog = true;
|
||||
for(int i = 1; i < argc; ++i)
|
||||
{
|
||||
@@ -496,7 +496,7 @@ int main(int argc, char *argv[])
|
||||
win_exit();
|
||||
return 1;
|
||||
}
|
||||
userSetPasswd = true;
|
||||
params::inst().userSetPwd = true;
|
||||
params::inst().poolPasswd = argv[i];
|
||||
}
|
||||
else if(opName.compare("-c") == 0 || opName.compare("--config") == 0)
|
||||
@@ -538,7 +538,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// check if we need a guided start
|
||||
if(!configEditor::file_exist(params::inst().configFile))
|
||||
do_guided_config(userSetPasswd);
|
||||
do_guided_config();
|
||||
|
||||
if(!jconf::inst()->parse_config(params::inst().configFile.c_str()))
|
||||
{
|
||||
|
||||
+2
-2
@@ -152,8 +152,8 @@ bool jconf::GetPoolConfig(size_t id, pool_cfg& cfg)
|
||||
size_t dlt = wt_max - wt_min;
|
||||
if(dlt != 0)
|
||||
{
|
||||
/* Normalise weights between 0 and 9.9 */
|
||||
cfg.weight = double(cfg.raw_weight - wt_min) * 9.9;
|
||||
/* Normalise weights between 0 and 9.8 */
|
||||
cfg.weight = double(cfg.raw_weight - wt_min) * 9.8;
|
||||
cfg.weight /= dlt;
|
||||
}
|
||||
else /* Special case - user selected same weights for everything */
|
||||
|
||||
+27
-31
@@ -497,8 +497,10 @@ void executor::ex_main()
|
||||
|
||||
set_timestamp();
|
||||
size_t pc = jconf::inst()->GetPoolCount();
|
||||
bool tls = true;
|
||||
for(size_t i=0; i < pc; i++)
|
||||
bool dev_tls = true;
|
||||
bool already_have_cli_pool = false;
|
||||
size_t i=0;
|
||||
for(; i < pc; i++)
|
||||
{
|
||||
jconf::pool_cfg cfg;
|
||||
jconf::inst()->GetPoolConfig(i, cfg);
|
||||
@@ -509,49 +511,43 @@ void executor::ex_main()
|
||||
win_exit();
|
||||
}
|
||||
#endif
|
||||
if(!cfg.tls) tls = false;
|
||||
pools.emplace_back(i+1, cfg.sPoolAddr, cfg.sWalletAddr, cfg.sPasswd, cfg.weight, false, cfg.tls, cfg.tls_fingerprint, cfg.nicehash);
|
||||
if(!cfg.tls) dev_tls = false;
|
||||
|
||||
if(!xmrstak::params::inst().poolURL.empty() && xmrstak::params::inst().poolURL == cfg.sPoolAddr)
|
||||
{
|
||||
auto& params = xmrstak::params::inst();
|
||||
already_have_cli_pool = true;
|
||||
|
||||
const char* wallet = params.poolUsername.empty() ? cfg.sWalletAddr : params.poolUsername.c_str();
|
||||
const char* pwd = params.userSetPwd ? params.poolPasswd.c_str() : cfg.sPasswd;
|
||||
|
||||
pools.emplace_back(i+1, cfg.sPoolAddr, wallet, pwd, 9.9, false, params.poolUseTls, cfg.tls_fingerprint, cfg.nicehash);
|
||||
}
|
||||
else
|
||||
pools.emplace_back(i+1, cfg.sPoolAddr, cfg.sWalletAddr, cfg.sPasswd, cfg.weight, false, cfg.tls, cfg.tls_fingerprint, cfg.nicehash);
|
||||
}
|
||||
|
||||
if(!xmrstak::params::inst().poolURL.empty() && !already_have_cli_pool)
|
||||
{
|
||||
auto& params = xmrstak::params::inst();
|
||||
pools.emplace_front(i+1, params.poolURL.c_str(), params.poolUsername.c_str(), params.poolPasswd.c_str(), 9.9, false, params.poolUseTls, "", false);
|
||||
}
|
||||
|
||||
if(jconf::inst()->IsCurrencyMonero())
|
||||
{
|
||||
if(tls)
|
||||
if(dev_tls)
|
||||
pools.emplace_front(0, "donate.xmr-stak.net:6666", "", "", 0.0, true, true, "", false);
|
||||
else
|
||||
pools.emplace_front(0, "donate.xmr-stak.net:3333", "", "", 0.0, true, false, "", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(tls)
|
||||
if(dev_tls)
|
||||
pools.emplace_front(0, "donate.xmr-stak.net:7777", "", "", 0.0, true, true, "", true);
|
||||
else
|
||||
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);
|
||||
|
||||
@@ -565,7 +561,7 @@ void executor::ex_main()
|
||||
if(jconf::inst()->GetVerboseLevel() >= 4)
|
||||
push_timed_event(ex_event(EV_HASHRATE_LOOP), jconf::inst()->GetAutohashTime());
|
||||
|
||||
size_t cnt = 0, i;
|
||||
size_t cnt = 0;
|
||||
while (true)
|
||||
{
|
||||
ev = oEventQ.pop();
|
||||
|
||||
@@ -59,10 +59,6 @@ public:
|
||||
inline const char* get_tls_fp() { return tls_fp.c_str(); }
|
||||
inline bool is_nicehash() { return nicehash; }
|
||||
|
||||
inline void set_pool_addr(const char* sAddr) { net_addr = sAddr; }
|
||||
inline void set_user_login(const char* sLogin) { usr_login = sLogin; }
|
||||
inline void set_user_passwd(const char* sPassword) { usr_pass = sPassword; }
|
||||
|
||||
bool get_pool_motd(std::string& strin);
|
||||
|
||||
std::string&& get_call_error();
|
||||
|
||||
+2
-1
@@ -24,8 +24,9 @@ struct params
|
||||
bool useNVIDIA;
|
||||
bool useCPU;
|
||||
|
||||
bool poolUseTls;
|
||||
bool poolUseTls = false;
|
||||
std::string poolURL;
|
||||
bool userSetPwd = false;
|
||||
std::string poolPasswd;
|
||||
std::string poolUsername;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user