From 835ff395c2230e73e0fdd0e7be6a478101f54d9a Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sun, 15 Feb 2015 14:46:36 +1100 Subject: [PATCH] Reset client and enonce1u count on resubscribe --- src/stratifier.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/stratifier.c b/src/stratifier.c index 40d4a8ca..36a5a3c4 100644 --- a/src/stratifier.c +++ b/src/stratifier.c @@ -1183,6 +1183,11 @@ static void update_subscribe(ckpool_t *ckp, const char *cmd) proxy->enonce1varlen = 0; proxy->enonce2varlen = proxy->nonce2len - proxy->enonce1varlen; proxy->max_clients = 1ll << (proxy->enonce1varlen * 8); + /* Reset the enonce1u in case this is a resubscribe of an existing + * parent proxy. All clients previously bound will be disconnected so + * we can start with a fresh count. */ + proxy->clients = 0; + proxy->enonce1u.u64 = 0; ck_wunlock(&dsdata->workbase_lock); LOGNOTICE("Upstream pool extranonce2 length %d, max proxy clients %"PRId64, @@ -2228,7 +2233,8 @@ static sdata_t *select_sdata(const ckpool_t *ckp, sdata_t *ckp_sdata) send_generator(ckp, "recruit", GEN_PRIORITY); } if (!best) { - LOGWARNING("Insufficient subproxies to accept more clients"); + LOGNOTICE("Temporarily insufficient subproxies of proxy %d to accept more clients", + proxy->id); return NULL; } return best->sdata;