mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-22 20:44:19 +00:00
Make the pools array a dynamically allocated array to allow unlimited pools to be added.
This commit is contained in:
parent
5cf4b7c432
commit
c027492fa4
5
api.c
5
api.c
@ -1636,10 +1636,7 @@ static void addpool(__maybe_unused SOCKETTYPE c, char *param, bool isjson)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (add_pool_details(true, url, user, pass) == ADD_POOL_MAXIMUM) {
|
add_pool_details(true, url, user, pass);
|
||||||
strcpy(io_buffer, message(MSG_TOOMANYP, MAX_POOLS, NULL, isjson));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ptr = escape_string(url, isjson);
|
ptr = escape_string(url, isjson);
|
||||||
strcpy(io_buffer, message(MSG_ADDPOOL, 0, ptr, isjson));
|
strcpy(io_buffer, message(MSG_ADDPOOL, 0, ptr, isjson));
|
||||||
|
17
cgminer.c
17
cgminer.c
@ -190,7 +190,7 @@ unsigned int found_blocks;
|
|||||||
unsigned int local_work;
|
unsigned int local_work;
|
||||||
unsigned int total_go, total_ro;
|
unsigned int total_go, total_ro;
|
||||||
|
|
||||||
struct pool *pools[MAX_POOLS];
|
struct pool **pools;
|
||||||
static struct pool *currentpool = NULL;
|
static struct pool *currentpool = NULL;
|
||||||
|
|
||||||
int total_pools;
|
int total_pools;
|
||||||
@ -395,6 +395,7 @@ static struct pool *add_pool(void)
|
|||||||
if (!pool)
|
if (!pool)
|
||||||
quit(1, "Failed to malloc pool in add_pool");
|
quit(1, "Failed to malloc pool in add_pool");
|
||||||
pool->pool_no = pool->prio = total_pools;
|
pool->pool_no = pool->prio = total_pools;
|
||||||
|
pools = realloc(pools, sizeof(struct pool *) * (total_pools + 2));
|
||||||
pools[total_pools++] = pool;
|
pools[total_pools++] = pool;
|
||||||
if (unlikely(pthread_mutex_init(&pool->pool_lock, NULL)))
|
if (unlikely(pthread_mutex_init(&pool->pool_lock, NULL)))
|
||||||
quit(1, "Failed to pthread_mutex_init in add_pool");
|
quit(1, "Failed to pthread_mutex_init in add_pool");
|
||||||
@ -4702,13 +4703,10 @@ char *curses_input(const char *query)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int add_pool_details(bool live, char *url, char *user, char *pass)
|
void add_pool_details(bool live, char *url, char *user, char *pass)
|
||||||
{
|
{
|
||||||
struct pool *pool;
|
struct pool *pool;
|
||||||
|
|
||||||
if (total_pools == MAX_POOLS)
|
|
||||||
return ADD_POOL_MAXIMUM;
|
|
||||||
|
|
||||||
pool = add_pool();
|
pool = add_pool();
|
||||||
|
|
||||||
pool->rpc_url = url;
|
pool->rpc_url = url;
|
||||||
@ -4724,8 +4722,6 @@ int add_pool_details(bool live, char *url, char *user, char *pass)
|
|||||||
pool->enabled = POOL_ENABLED;
|
pool->enabled = POOL_ENABLED;
|
||||||
if (live && !pool_active(pool, false))
|
if (live && !pool_active(pool, false))
|
||||||
pool->idle = true;
|
pool->idle = true;
|
||||||
|
|
||||||
return ADD_POOL_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_CURSES
|
#ifdef HAVE_CURSES
|
||||||
@ -4735,10 +4731,6 @@ static bool input_pool(bool live)
|
|||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
|
||||||
immedok(logwin, true);
|
immedok(logwin, true);
|
||||||
if (total_pools == MAX_POOLS) {
|
|
||||||
wlogprint("Reached maximum number of pools.\n");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
wlogprint("Input server details.\n");
|
wlogprint("Input server details.\n");
|
||||||
|
|
||||||
url = curses_input("URL");
|
url = curses_input("URL");
|
||||||
@ -4766,7 +4758,8 @@ static bool input_pool(bool live)
|
|||||||
if (!pass)
|
if (!pass)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ret = (add_pool_details(live, url, user, pass) == ADD_POOL_OK);
|
add_pool_details(live, url, user, pass);
|
||||||
|
ret = true;
|
||||||
out:
|
out:
|
||||||
immedok(logwin, false);
|
immedok(logwin, false);
|
||||||
|
|
||||||
|
8
miner.h
8
miner.h
@ -579,13 +579,9 @@ extern void api(int thr_id);
|
|||||||
|
|
||||||
extern struct pool *current_pool(void);
|
extern struct pool *current_pool(void);
|
||||||
extern int active_pools(void);
|
extern int active_pools(void);
|
||||||
extern int add_pool_details(bool live, char *url, char *user, char *pass);
|
extern void add_pool_details(bool live, char *url, char *user, char *pass);
|
||||||
|
|
||||||
#define ADD_POOL_MAXIMUM 1
|
|
||||||
#define ADD_POOL_OK 0
|
|
||||||
|
|
||||||
#define MAX_GPUDEVICES 16
|
#define MAX_GPUDEVICES 16
|
||||||
#define MAX_POOLS (32)
|
|
||||||
|
|
||||||
#define MIN_INTENSITY -10
|
#define MIN_INTENSITY -10
|
||||||
#define _MIN_INTENSITY_STR "-10"
|
#define _MIN_INTENSITY_STR "-10"
|
||||||
@ -608,7 +604,7 @@ extern struct cgpu_info *cpus;
|
|||||||
extern int total_devices;
|
extern int total_devices;
|
||||||
extern struct cgpu_info **devices;
|
extern struct cgpu_info **devices;
|
||||||
extern int total_pools;
|
extern int total_pools;
|
||||||
extern struct pool *pools[MAX_POOLS];
|
extern struct pool **pools;
|
||||||
extern const char *algo_names[];
|
extern const char *algo_names[];
|
||||||
extern enum sha256_algos opt_algo;
|
extern enum sha256_algos opt_algo;
|
||||||
extern struct strategies strategies[];
|
extern struct strategies strategies[];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user