|
@@ -30,10 +30,6 @@
|
|
|
#define DEF_RPC_URL "http://127.0.0.1:8332/"
|
|
#define DEF_RPC_URL "http://127.0.0.1:8332/"
|
|
|
#define DEF_RPC_USERPASS "rpcuser:rpcpass"
|
|
#define DEF_RPC_USERPASS "rpcuser:rpcpass"
|
|
|
|
|
|
|
|
-enum {
|
|
|
|
|
- FAILURE_INTERVAL = 30,
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
enum sha256_algos {
|
|
enum sha256_algos {
|
|
|
ALGO_C, /* plain C */
|
|
ALGO_C, /* plain C */
|
|
|
ALGO_4WAY, /* parallel SSE2 */
|
|
ALGO_4WAY, /* parallel SSE2 */
|
|
@@ -60,6 +56,7 @@ bool opt_debug = false;
|
|
|
bool opt_protocol = false;
|
|
bool opt_protocol = false;
|
|
|
bool opt_quiet = false;
|
|
bool opt_quiet = false;
|
|
|
static int opt_retries = 10;
|
|
static int opt_retries = 10;
|
|
|
|
|
+static int opt_fail_pause = 30;
|
|
|
static int opt_scantime = 5;
|
|
static int opt_scantime = 5;
|
|
|
static const bool opt_time = true;
|
|
static const bool opt_time = true;
|
|
|
static enum sha256_algos opt_algo = ALGO_C;
|
|
static enum sha256_algos opt_algo = ALGO_C;
|
|
@@ -105,6 +102,10 @@ static struct option_help options_help[] = {
|
|
|
"(-r N) Number of times to retry, if JSON-RPC call fails\n"
|
|
"(-r N) Number of times to retry, if JSON-RPC call fails\n"
|
|
|
"\t(default: 10; use -1 for \"never\")" },
|
|
"\t(default: 10; use -1 for \"never\")" },
|
|
|
|
|
|
|
|
|
|
+ { "retry-pause N",
|
|
|
|
|
+ "(-R N) Number of seconds to pause, between retries\n"
|
|
|
|
|
+ "\t(default: 30)" },
|
|
|
|
|
+
|
|
|
{ "scantime N",
|
|
{ "scantime N",
|
|
|
"(-s N) Upper bound on time spent scanning current work,\n"
|
|
"(-s N) Upper bound on time spent scanning current work,\n"
|
|
|
"\tin seconds. (default: 5)" },
|
|
"\tin seconds. (default: 5)" },
|
|
@@ -129,6 +130,7 @@ static struct option options[] = {
|
|
|
{ "protocol-dump", 0, NULL, 'P' },
|
|
{ "protocol-dump", 0, NULL, 'P' },
|
|
|
{ "threads", 1, NULL, 't' },
|
|
{ "threads", 1, NULL, 't' },
|
|
|
{ "retries", 1, NULL, 'r' },
|
|
{ "retries", 1, NULL, 'r' },
|
|
|
|
|
+ { "retry-pause", 1, NULL, 'R' },
|
|
|
{ "scantime", 1, NULL, 's' },
|
|
{ "scantime", 1, NULL, 's' },
|
|
|
{ "url", 1, NULL, 1001 },
|
|
{ "url", 1, NULL, 1001 },
|
|
|
{ "userpass", 1, NULL, 1002 },
|
|
{ "userpass", 1, NULL, 1002 },
|
|
@@ -277,8 +279,8 @@ static void *miner_thread(void *thr_id_int)
|
|
|
|
|
|
|
|
/* pause, then restart work loop */
|
|
/* pause, then restart work loop */
|
|
|
fprintf(stderr, "retry after %d seconds\n",
|
|
fprintf(stderr, "retry after %d seconds\n",
|
|
|
- FAILURE_INTERVAL);
|
|
|
|
|
- sleep(FAILURE_INTERVAL);
|
|
|
|
|
|
|
+ opt_fail_pause);
|
|
|
|
|
+ sleep(opt_fail_pause);
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -294,8 +296,8 @@ static void *miner_thread(void *thr_id_int)
|
|
|
|
|
|
|
|
/* pause, then restart work loop */
|
|
/* pause, then restart work loop */
|
|
|
fprintf(stderr, "retry after %d seconds\n",
|
|
fprintf(stderr, "retry after %d seconds\n",
|
|
|
- FAILURE_INTERVAL);
|
|
|
|
|
- sleep(FAILURE_INTERVAL);
|
|
|
|
|
|
|
+ opt_fail_pause);
|
|
|
|
|
+ sleep(opt_fail_pause);
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -425,6 +427,13 @@ static void parse_arg (int key, char *arg)
|
|
|
|
|
|
|
|
opt_retries = v;
|
|
opt_retries = v;
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case 'R':
|
|
|
|
|
+ v = atoi(arg);
|
|
|
|
|
+ if (v < 1 || v > 9999) /* sanity check */
|
|
|
|
|
+ show_usage();
|
|
|
|
|
+
|
|
|
|
|
+ opt_fail_pause = v;
|
|
|
|
|
+ break;
|
|
|
case 's':
|
|
case 's':
|
|
|
v = atoi(arg);
|
|
v = atoi(arg);
|
|
|
if (v < 1 || v > 9999) /* sanity check */
|
|
if (v < 1 || v > 9999) /* sanity check */
|