Commit 52995e2811ab97d9e041ba84652d20ffbd354bcf

Con Kolivas 2013-03-01T14:28:02

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

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);