|
|
@ -3664,7 +3664,6 @@ out: |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
free(username); |
|
|
|
free(username); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void userclients(sdata_t *sdata, const char *buf, int *sockd) |
|
|
|
static void userclients(sdata_t *sdata, const char *buf, int *sockd) |
|
|
@ -3703,7 +3702,6 @@ out: |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
free(username); |
|
|
|
free(username); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void workerclients(sdata_t *sdata, const char *buf, int *sockd) |
|
|
|
static void workerclients(sdata_t *sdata, const char *buf, int *sockd) |
|
|
@ -3746,7 +3744,6 @@ out: |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
free(workername); |
|
|
|
free(workername); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static json_t *workerinfo(const user_instance_t *user, const worker_instance_t *worker) |
|
|
|
static json_t *workerinfo(const user_instance_t *user, const worker_instance_t *worker) |
|
|
@ -3792,7 +3789,6 @@ out: |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
free(workername); |
|
|
|
free(workername); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void getworkers(sdata_t *sdata, int *sockd) |
|
|
|
static void getworkers(sdata_t *sdata, int *sockd) |
|
|
@ -3813,7 +3809,6 @@ static void getworkers(sdata_t *sdata, int *sockd) |
|
|
|
|
|
|
|
|
|
|
|
JSON_CPACK(val, "{so}", "workers", worker_arr); |
|
|
|
JSON_CPACK(val, "{so}", "workers", worker_arr); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void getusers(sdata_t *sdata, int *sockd) |
|
|
|
static void getusers(sdata_t *sdata, int *sockd) |
|
|
@ -3831,7 +3826,6 @@ static void getusers(sdata_t *sdata, int *sockd) |
|
|
|
|
|
|
|
|
|
|
|
JSON_CPACK(val, "{so}", "users", user_array); |
|
|
|
JSON_CPACK(val, "{so}", "users", user_array); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static json_t *clientinfo(const stratum_instance_t *client) |
|
|
|
static json_t *clientinfo(const stratum_instance_t *client) |
|
|
@ -3894,7 +3888,6 @@ out: |
|
|
|
if (val) |
|
|
|
if (val) |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void getclients(sdata_t *sdata, int *sockd) |
|
|
|
static void getclients(sdata_t *sdata, int *sockd) |
|
|
@ -3912,7 +3905,6 @@ static void getclients(sdata_t *sdata, int *sockd) |
|
|
|
|
|
|
|
|
|
|
|
JSON_CPACK(val, "{so}", "clients", client_arr); |
|
|
|
JSON_CPACK(val, "{so}", "clients", client_arr); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void user_clientinfo(sdata_t *sdata, const char *buf, int *sockd) |
|
|
|
static void user_clientinfo(sdata_t *sdata, const char *buf, int *sockd) |
|
|
@ -3951,7 +3943,6 @@ out: |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
free(username); |
|
|
|
free(username); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void worker_clientinfo(sdata_t *sdata, const char *buf, int *sockd) |
|
|
|
static void worker_clientinfo(sdata_t *sdata, const char *buf, int *sockd) |
|
|
@ -3994,7 +3985,6 @@ out: |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
free(workername); |
|
|
|
free(workername); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* Return the user masked priority value of the proxy */ |
|
|
|
/* Return the user masked priority value of the proxy */ |
|
|
@ -4053,7 +4043,6 @@ out: |
|
|
|
if (val) |
|
|
|
if (val) |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void proxyinfo(sdata_t *sdata, const char *buf, int *sockd) |
|
|
|
static void proxyinfo(sdata_t *sdata, const char *buf, int *sockd) |
|
|
@ -4083,7 +4072,6 @@ static void proxyinfo(sdata_t *sdata, const char *buf, int *sockd) |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
JSON_CPACK(res, "{so}", "proxies", arr_val); |
|
|
|
JSON_CPACK(res, "{so}", "proxies", arr_val); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void setproxy(sdata_t *sdata, const char *buf, int *sockd) |
|
|
|
static void setproxy(sdata_t *sdata, const char *buf, int *sockd) |
|
|
@ -4118,7 +4106,6 @@ out: |
|
|
|
if (val) |
|
|
|
if (val) |
|
|
|
json_decref(val); |
|
|
|
json_decref(val); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
send_api_response(res, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void get_poolstats(sdata_t *sdata, int *sockd) |
|
|
|
static void get_poolstats(sdata_t *sdata, int *sockd) |
|
|
@ -4138,7 +4125,6 @@ static void get_poolstats(sdata_t *sdata, int *sockd) |
|
|
|
mutex_unlock(&sdata->stats_lock); |
|
|
|
mutex_unlock(&sdata->stats_lock); |
|
|
|
|
|
|
|
|
|
|
|
send_api_response(val, *sockd); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void get_uptime(sdata_t *sdata, int *sockd) |
|
|
|
static void get_uptime(sdata_t *sdata, int *sockd) |
|
|
@ -4148,7 +4134,6 @@ static void get_uptime(sdata_t *sdata, int *sockd) |
|
|
|
|
|
|
|
|
|
|
|
JSON_CPACK(val, "{si}", "uptime", uptime); |
|
|
|
JSON_CPACK(val, "{si}", "uptime", uptime); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
send_api_response(val, *sockd); |
|
|
|
_Close(sockd); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void srecv_process(ckpool_t *ckp, json_t *val); |
|
|
|
static void srecv_process(ckpool_t *ckp, json_t *val); |
|
|
@ -4183,6 +4168,7 @@ static void stratum_loop(ckpool_t *ckp, proc_instance_t *pi) |
|
|
|
|
|
|
|
|
|
|
|
retry: |
|
|
|
retry: |
|
|
|
if (umsg) { |
|
|
|
if (umsg) { |
|
|
|
|
|
|
|
Close(umsg->sockd); |
|
|
|
free(umsg->buf); |
|
|
|
free(umsg->buf); |
|
|
|
dealloc(umsg); |
|
|
|
dealloc(umsg); |
|
|
|
} |
|
|
|
} |
|
|
@ -4212,14 +4198,12 @@ retry: |
|
|
|
json_t *val = json_loads(buf, JSON_DISABLE_EOF_CHECK, NULL); |
|
|
|
json_t *val = json_loads(buf, JSON_DISABLE_EOF_CHECK, NULL); |
|
|
|
|
|
|
|
|
|
|
|
/* This is a message for a node */ |
|
|
|
/* This is a message for a node */ |
|
|
|
Close(umsg->sockd); |
|
|
|
|
|
|
|
ckmsgq_add(sdata->srecvs, val); |
|
|
|
ckmsgq_add(sdata->srecvs, val); |
|
|
|
goto retry; |
|
|
|
goto retry; |
|
|
|
} |
|
|
|
} |
|
|
|
if (cmdmatch(buf, "ping")) { |
|
|
|
if (cmdmatch(buf, "ping")) { |
|
|
|
LOGDEBUG("Stratifier received ping request"); |
|
|
|
LOGDEBUG("Stratifier received ping request"); |
|
|
|
send_unix_msg(umsg->sockd, "pong"); |
|
|
|
send_unix_msg(umsg->sockd, "pong"); |
|
|
|
Close(umsg->sockd); |
|
|
|
|
|
|
|
goto retry; |
|
|
|
goto retry; |
|
|
|
} |
|
|
|
} |
|
|
|
if (cmdmatch(buf, "stats")) { |
|
|
|
if (cmdmatch(buf, "stats")) { |
|
|
@ -4228,7 +4212,6 @@ retry: |
|
|
|
LOGDEBUG("Stratifier received stats request"); |
|
|
|
LOGDEBUG("Stratifier received stats request"); |
|
|
|
msg = stratifier_stats(ckp, sdata); |
|
|
|
msg = stratifier_stats(ckp, sdata); |
|
|
|
send_unix_msg(umsg->sockd, msg); |
|
|
|
send_unix_msg(umsg->sockd, msg); |
|
|
|
Close(umsg->sockd); |
|
|
|
|
|
|
|
goto retry; |
|
|
|
goto retry; |
|
|
|
} |
|
|
|
} |
|
|
|
/* Parse API commands here to return a message to sockd */ |
|
|
|
/* Parse API commands here to return a message to sockd */ |
|
|
@ -4293,7 +4276,6 @@ retry: |
|
|
|
goto retry; |
|
|
|
goto retry; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Close(umsg->sockd); |
|
|
|
|
|
|
|
LOGDEBUG("Stratifier received request: %s", buf); |
|
|
|
LOGDEBUG("Stratifier received request: %s", buf); |
|
|
|
if (cmdmatch(buf, "update")) { |
|
|
|
if (cmdmatch(buf, "update")) { |
|
|
|
update_base(sdata, GEN_PRIORITY); |
|
|
|
update_base(sdata, GEN_PRIORITY); |
|
|
|