Browse Source

Remove as many initial zeroes as exist on share display, abstracting out a hash show function to use across different submission mechanisms.

nfactor-troky
Con Kolivas 11 years ago
parent
commit
57d6a6f697
  1. 46
      cgminer.c

46
cgminer.c

@ -2710,6 +2710,27 @@ static void print_status(int thr_id)
text_print_status(thr_id); text_print_status(thr_id);
} }
static void show_hash(struct work *work, char *hashshow)
{
unsigned char rhash[32];
char diffdisp[16];
unsigned long h32;
uint32_t *hash32;
int intdiff, ofs;
swab256(rhash, work->hash);
for (ofs = 0; ofs <= 28; ofs ++) {
if (rhash[ofs])
break;
}
hash32 = (uint32_t *)(rhash + ofs);
h32 = be32toh(*hash32);
intdiff = round(work->work_difficulty);
suffix_string(work->share_diff, diffdisp, sizeof (diffdisp), 0);
snprintf(hashshow, sizeof(hashshow), "%08lx Diff %s/%d%s", h32, diffdisp,
intdiff, work->block? " BLOCK!" : "");
}
static bool submit_upstream_work(struct work *work, CURL *curl, bool resubmit) static bool submit_upstream_work(struct work *work, CURL *curl, bool resubmit)
{ {
char *hexstr = NULL; char *hexstr = NULL;
@ -2803,20 +2824,7 @@ static bool submit_upstream_work(struct work *work, CURL *curl, bool resubmit)
err = json_object_get(val, "error"); err = json_object_get(val, "error");
if (!QUIET) { if (!QUIET) {
int intdiff = round(work->work_difficulty); show_hash(work, hashshow);
char diffdisp[16], *outhash;
unsigned char rhash[32];
swab256(rhash, work->hash);
if (opt_scrypt)
outhash = bin2hex(rhash + 2, 4);
else
outhash = bin2hex(rhash + 4, 4);
suffix_string(work->share_diff, diffdisp, sizeof(diffdisp), 0);
snprintf(hashshow, sizeof(hashshow), "%s Diff %s/%d%s",
outhash, diffdisp, intdiff,
work->block? " BLOCK!" : "");
free(outhash);
if (opt_worktime) { if (opt_worktime) {
char workclone[20]; char workclone[20];
@ -5183,16 +5191,8 @@ static void stratum_share_result(json_t *val, json_t *res_val, json_t *err_val,
{ {
struct work *work = sshare->work; struct work *work = sshare->work;
char hashshow[64]; char hashshow[64];
uint32_t *hash32;
char diffdisp[16];
int intdiff;
hash32 = (uint32_t *)(work->hash); show_hash(work, hashshow);
intdiff = round(work->work_difficulty);
suffix_string(work->share_diff, diffdisp, sizeof (diffdisp), 0);
snprintf(hashshow, sizeof(hashshow),
"%08lx Diff %s/%d%s", (unsigned long)htole32(hash32[6]), diffdisp, intdiff,
work->block? " BLOCK!" : "");
share_result(val, res_val, err_val, work, hashshow, false, ""); share_result(val, res_val, err_val, work, hashshow, false, "");
} }

Loading…
Cancel
Save