Merge pull request #389 from kanoi/bflsc BFL stop 1st init command if no device + Update diff stale: total and pools when stratum throws away shares
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
diff --git a/api.c b/api.c
index 6d77c60..9140df6 100644
--- a/api.c
+++ b/api.c
@@ -3433,12 +3433,10 @@ static void send_result(struct io_data *io_data, SOCKETTYPE c, bool isjson)
// ignore failure - it's closed immediately anyway
n = send(c, buf, len+1, 0);
- if (opt_debug) {
- if (SOCKETFAIL(n))
- applog(LOG_DEBUG, "API: send failed: %s", SOCKERRMSG);
- else
- applog(LOG_DEBUG, "API: sent %d", n);
- }
+ if (SOCKETFAIL(n))
+ applog(LOG_WARNING, "API: send failed: %s", SOCKERRMSG);
+ else
+ applog(LOG_DEBUG, "API: sent %d", n);
}
static void tidyup(__maybe_unused void *arg)
diff --git a/cgminer.c b/cgminer.c
index 23b2aca..964815a 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -4702,12 +4702,14 @@ out:
void clear_stratum_shares(struct pool *pool)
{
struct stratum_share *sshare, *tmpshare;
+ double diff_cleared = 0;
int cleared = 0;
mutex_lock(&sshare_lock);
HASH_ITER(hh, stratum_shares, sshare, tmpshare) {
if (sshare->work->pool == pool) {
HASH_DEL(stratum_shares, sshare);
+ diff_cleared += sshare->work->work_difficulty;
free_work(sshare->work);
free(sshare);
cleared++;
@@ -4719,6 +4721,8 @@ void clear_stratum_shares(struct pool *pool)
applog(LOG_WARNING, "Lost %d shares due to stratum disconnect on pool %d", cleared, pool->pool_no);
pool->stale_shares += cleared;
total_stale += cleared;
+ pool->diff_stale += diff_cleared;
+ total_diff_stale += diff_cleared;
}
}
diff --git a/driver-bitforce.c b/driver-bitforce.c
index b7f238b..228fa5e 100644
--- a/driver-bitforce.c
+++ b/driver-bitforce.c
@@ -85,6 +85,9 @@ static void bitforce_initialise(struct cgpu_info *bitforce, bool lock)
if (lock)
mutex_lock(&bitforce->device_mutex);
+ if (bitforce->usbinfo.nodev)
+ goto failed;
+
// Reset
err = usb_transfer(bitforce, FTDI_TYPE_OUT, FTDI_REQUEST_RESET,
FTDI_VALUE_RESET, bitforce->usbdev->found->interface, C_RESET);