Browse Source

Make the pools array a dynamically allocated array to allow unlimited pools to be added.

nfactor-troky
Con Kolivas 13 years ago
parent
commit
c027492fa4
  1. 5
      api.c
  2. 17
      cgminer.c
  3. 8
      miner.h

5
api.c

@ -1636,10 +1636,7 @@ static void addpool(__maybe_unused SOCKETTYPE c, char *param, bool isjson) @@ -1636,10 +1636,7 @@ static void addpool(__maybe_unused SOCKETTYPE c, char *param, bool isjson)
return;
}
if (add_pool_details(true, url, user, pass) == ADD_POOL_MAXIMUM) {
strcpy(io_buffer, message(MSG_TOOMANYP, MAX_POOLS, NULL, isjson));
return;
}
add_pool_details(true, url, user, pass);
ptr = escape_string(url, isjson);
strcpy(io_buffer, message(MSG_ADDPOOL, 0, ptr, isjson));

17
cgminer.c

@ -190,7 +190,7 @@ unsigned int found_blocks; @@ -190,7 +190,7 @@ unsigned int found_blocks;
unsigned int local_work;
unsigned int total_go, total_ro;
struct pool *pools[MAX_POOLS];
struct pool **pools;
static struct pool *currentpool = NULL;
int total_pools;
@ -395,6 +395,7 @@ static struct pool *add_pool(void) @@ -395,6 +395,7 @@ static struct pool *add_pool(void)
if (!pool)
quit(1, "Failed to malloc pool in add_pool");
pool->pool_no = pool->prio = total_pools;
pools = realloc(pools, sizeof(struct pool *) * (total_pools + 2));
pools[total_pools++] = pool;
if (unlikely(pthread_mutex_init(&pool->pool_lock, NULL)))
quit(1, "Failed to pthread_mutex_init in add_pool");
@ -4702,13 +4703,10 @@ char *curses_input(const char *query) @@ -4702,13 +4703,10 @@ char *curses_input(const char *query)
}
#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;
if (total_pools == MAX_POOLS)
return ADD_POOL_MAXIMUM;
pool = add_pool();
pool->rpc_url = url;
@ -4724,8 +4722,6 @@ int add_pool_details(bool live, char *url, char *user, char *pass) @@ -4724,8 +4722,6 @@ int add_pool_details(bool live, char *url, char *user, char *pass)
pool->enabled = POOL_ENABLED;
if (live && !pool_active(pool, false))
pool->idle = true;
return ADD_POOL_OK;
}
#ifdef HAVE_CURSES
@ -4735,10 +4731,6 @@ static bool input_pool(bool live) @@ -4735,10 +4731,6 @@ static bool input_pool(bool live)
bool ret = false;
immedok(logwin, true);
if (total_pools == MAX_POOLS) {
wlogprint("Reached maximum number of pools.\n");
goto out;
}
wlogprint("Input server details.\n");
url = curses_input("URL");
@ -4766,7 +4758,8 @@ static bool input_pool(bool live) @@ -4766,7 +4758,8 @@ static bool input_pool(bool live)
if (!pass)
goto out;
ret = (add_pool_details(live, url, user, pass) == ADD_POOL_OK);
add_pool_details(live, url, user, pass);
ret = true;
out:
immedok(logwin, false);

8
miner.h

@ -579,13 +579,9 @@ extern void api(int thr_id); @@ -579,13 +579,9 @@ extern void api(int thr_id);
extern struct pool *current_pool(void);
extern int active_pools(void);
extern int add_pool_details(bool live, char *url, char *user, char *pass);
#define ADD_POOL_MAXIMUM 1
#define ADD_POOL_OK 0
extern void add_pool_details(bool live, char *url, char *user, char *pass);
#define MAX_GPUDEVICES 16
#define MAX_POOLS (32)
#define MIN_INTENSITY -10
#define _MIN_INTENSITY_STR "-10"
@ -608,7 +604,7 @@ extern struct cgpu_info *cpus; @@ -608,7 +604,7 @@ extern struct cgpu_info *cpus;
extern int total_devices;
extern struct cgpu_info **devices;
extern int total_pools;
extern struct pool *pools[MAX_POOLS];
extern struct pool **pools;
extern const char *algo_names[];
extern enum sha256_algos opt_algo;
extern struct strategies strategies[];

Loading…
Cancel
Save