From f028c5e4e3d1d1aa47c8cb48973348839d356ba1 Mon Sep 17 00:00:00 2001 From: unkernet Date: Sun, 27 Aug 2017 23:28:16 +0300 Subject: [PATCH] Rewrite readnonces --- solve_bs.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/solve_bs.c b/solve_bs.c index 7ea0a45..741202e 100644 --- a/solve_bs.c +++ b/solve_bs.c @@ -19,24 +19,28 @@ uint32_t **space; size_t thread_count = 1; uint64_t *readnonces(char* fname) { - int i, j, r; + int i, j; FILE *f = fopen(fname, "r"); + if (f == NULL) { + fprintf(stderr, "Cannot open file.\n"); + exit(EXIT_FAILURE); + } uint64_t *nonces = malloc(sizeof (uint64_t) << 24); - uint32_t byte; - char parities; + uint32_t nt; + char par; - for(i = 0; !feof(f); ++i) { - for(j = nonces[i] = 0; j < 4; ++j) { - r = fscanf(f, "%02x%c ", &byte, &parities); - if(r != 2) { - fprintf(stderr, "Input parse error pos:%ld\n", ftell(f)); + i = 0; + while(!feof(f)){ + nonces[i] = 0; + for(j = 0; j < 32; j += 8) { + if(2 != fscanf(f, "%02x%c ", &nt, &par)) { + fprintf(stderr, "Input format error at line:%d\n", i); fflush(stderr); - abort(); + exit(EXIT_FAILURE); } - parities = (parities == '!') ^ parity(byte); - nonces[i] |= byte << 8 * j; - nonces[i] |= ((uint64_t)parities) << (32 + j * 8); + nonces[i] |= nt << j | (uint64_t)((par == '!') ^ parity(nt)) << (32 + j); } + i++; } nonces[i] = -1; fclose(f);