mirror of
https://github.com/GOSTSec/sgminer
synced 2025-02-05 11:34:16 +00:00
Provide a mechanism for setting a pool quota to be used by load-balance.
This commit is contained in:
parent
770556cdec
commit
0121b75a4e
48
cgminer.c
48
cgminer.c
@ -512,6 +512,7 @@ struct pool *add_pool(void)
|
|||||||
|
|
||||||
pool->rpc_req = getwork_req;
|
pool->rpc_req = getwork_req;
|
||||||
pool->rpc_proxy = NULL;
|
pool->rpc_proxy = NULL;
|
||||||
|
pool->quota = 1;
|
||||||
|
|
||||||
return pool;
|
return pool;
|
||||||
}
|
}
|
||||||
@ -697,19 +698,20 @@ bool detect_stratum(struct pool *pool, char *url)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *set_url(char *arg)
|
static struct pool *add_url(void)
|
||||||
{
|
{
|
||||||
struct pool *pool;
|
|
||||||
|
|
||||||
total_urls++;
|
total_urls++;
|
||||||
if (total_urls > total_pools)
|
if (total_urls > total_pools)
|
||||||
add_pool();
|
add_pool();
|
||||||
pool = pools[total_urls - 1];
|
return pools[total_urls - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
static void setup_url(struct pool *pool, char *arg)
|
||||||
|
{
|
||||||
arg = get_proxy(arg, pool);
|
arg = get_proxy(arg, pool);
|
||||||
|
|
||||||
if (detect_stratum(pool, arg))
|
if (detect_stratum(pool, arg))
|
||||||
return NULL;
|
return;
|
||||||
|
|
||||||
opt_set_charp(arg, &pool->rpc_url);
|
opt_set_charp(arg, &pool->rpc_url);
|
||||||
if (strncmp(arg, "http://", 7) &&
|
if (strncmp(arg, "http://", 7) &&
|
||||||
@ -723,6 +725,39 @@ static char *set_url(char *arg)
|
|||||||
strncat(httpinput, arg, 248);
|
strncat(httpinput, arg, 248);
|
||||||
pool->rpc_url = httpinput;
|
pool->rpc_url = httpinput;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *set_url(char *arg)
|
||||||
|
{
|
||||||
|
struct pool *pool = add_url();
|
||||||
|
|
||||||
|
setup_url(pool, arg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *set_quota(char *arg)
|
||||||
|
{
|
||||||
|
char *semicolon = strchr(arg, ';'), *url;
|
||||||
|
int len, qlen, quota;
|
||||||
|
struct pool *pool;
|
||||||
|
|
||||||
|
if (!semicolon)
|
||||||
|
return "No semicolon separated quota;URL pair found";
|
||||||
|
len = strlen(arg);
|
||||||
|
*semicolon = '\0';
|
||||||
|
qlen = strlen(arg);
|
||||||
|
if (!qlen)
|
||||||
|
return "No parameter for quota found";
|
||||||
|
len -= qlen + 1;
|
||||||
|
if (len < 1)
|
||||||
|
return "No parameter for URL found";
|
||||||
|
quota = atoi(arg);
|
||||||
|
if (quota < 0)
|
||||||
|
return "Invalid negative parameter for quota set";
|
||||||
|
url = arg + qlen + 1;
|
||||||
|
pool = add_url();
|
||||||
|
setup_url(pool, url);
|
||||||
|
pool->quota = quota;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -1201,6 +1236,9 @@ static struct opt_table opt_config_table[] = {
|
|||||||
OPT_WITHOUT_ARG("--quiet|-q",
|
OPT_WITHOUT_ARG("--quiet|-q",
|
||||||
opt_set_bool, &opt_quiet,
|
opt_set_bool, &opt_quiet,
|
||||||
"Disable logging output, display status and errors"),
|
"Disable logging output, display status and errors"),
|
||||||
|
OPT_WITH_ARG("--quota|-U",
|
||||||
|
set_quota, NULL, NULL,
|
||||||
|
"quota;URL combination for server with load-balance strategy quotas"),
|
||||||
OPT_WITHOUT_ARG("--real-quiet",
|
OPT_WITHOUT_ARG("--real-quiet",
|
||||||
opt_set_bool, &opt_realquiet,
|
opt_set_bool, &opt_realquiet,
|
||||||
"Disable all output"),
|
"Disable all output"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user