Browse Source

Pass json error value to share result function to be able to parse reject reason in stratum.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
512d244094
  1. 15
      cgminer.c

15
cgminer.c

@ -1810,8 +1810,8 @@ static void reject_pool(struct pool *pool)
* rejected values but the chance of two submits completing at the * rejected values but the chance of two submits completing at the
* same time is zero so there is no point adding extra locking */ * same time is zero so there is no point adding extra locking */
static void static void
share_result(json_t *val, json_t *res, const struct work *work, char *hashshow, share_result(json_t *val, json_t *res, json_t *err, const struct work *work,
bool resubmit, char *worktime) char *hashshow, bool resubmit, char *worktime)
{ {
struct pool *pool = work->pool; struct pool *pool = work->pool;
struct cgpu_info *cgpu = thr_info[work->thr_id].cgpu; struct cgpu_info *cgpu = thr_info[work->thr_id].cgpu;
@ -1917,7 +1917,7 @@ share_result(json_t *val, json_t *res, const struct work *work, char *hashshow,
static bool submit_upstream_work(const struct work *work, CURL *curl, bool resubmit) static bool submit_upstream_work(const struct work *work, CURL *curl, bool resubmit)
{ {
char *hexstr = NULL; char *hexstr = NULL;
json_t *val, *res; json_t *val, *res, *err;
char s[345], sd[345]; char s[345], sd[345];
bool rc = false; bool rc = false;
int thr_id = work->thr_id; int thr_id = work->thr_id;
@ -1968,6 +1968,7 @@ static bool submit_upstream_work(const struct work *work, CURL *curl, bool resub
applog(LOG_WARNING, "Pool %d communication resumed, submitting work", pool->pool_no); applog(LOG_WARNING, "Pool %d communication resumed, submitting work", pool->pool_no);
res = json_object_get(val, "result"); res = json_object_get(val, "result");
err = json_object_get(val, "error");
if (!QUIET) { if (!QUIET) {
hash32 = (uint32_t *)(work->hash); hash32 = (uint32_t *)(work->hash);
@ -2022,7 +2023,7 @@ static bool submit_upstream_work(const struct work *work, CURL *curl, bool resub
} }
} }
share_result(val, res, work, hashshow, resubmit, worktime); share_result(val, res, err, work, hashshow, resubmit, worktime);
cgpu->utility = cgpu->accepted / total_secs * 60; cgpu->utility = cgpu->accepted / total_secs * 60;
@ -4048,7 +4049,7 @@ out_unlock:
} }
} }
static void stratum_share_result(json_t *val, json_t *res_val, static void stratum_share_result(json_t *val, json_t *res_val, json_t *err_val,
struct stratum_share *sshare) struct stratum_share *sshare)
{ {
struct work *work = &sshare->work; struct work *work = &sshare->work;
@ -4060,7 +4061,7 @@ static void stratum_share_result(json_t *val, json_t *res_val,
intdiff = round(work->work_difficulty); intdiff = round(work->work_difficulty);
sprintf(hashshow, "%08lx Diff %d%s", (unsigned long)(hash32[6]), intdiff, sprintf(hashshow, "%08lx Diff %d%s", (unsigned long)(hash32[6]), intdiff,
work->block? " BLOCK!" : ""); work->block? " BLOCK!" : "");
share_result(val, res_val, work, hashshow, false, ""); share_result(val, res_val, err_val, work, hashshow, false, "");
} }
/* Parses stratum json responses and tries to find the id that the request /* Parses stratum json responses and tries to find the id that the request
@ -4112,7 +4113,7 @@ static bool parse_stratum_response(char *s)
applog(LOG_NOTICE, "Rejected untracked stratum share"); applog(LOG_NOTICE, "Rejected untracked stratum share");
goto out; goto out;
} }
stratum_share_result(val, res_val, sshare); stratum_share_result(val, res_val, err_val, sshare);
free(sshare); free(sshare);
ret = true; ret = true;

Loading…
Cancel
Save