Commit 44fc698750a22a7c13637dbe2ef6020a9efb7df6

Kano 2012-05-04T00:13:42

API add last share time to each pool

diff --git a/api.c b/api.c
index 8571dcc..1bf9b2b 100644
--- a/api.c
+++ b/api.c
@@ -158,7 +158,7 @@ static const char SEPARATOR = '|';
 #define SEPSTR "|"
 static const char GPUSEP = ',';
 
-static const char *APIVERSION = "1.9";
+static const char *APIVERSION = "1.10";
 static const char *DEAD = "Dead";
 static const char *SICK = "Sick";
 static const char *NOSTART = "NoStart";
@@ -1221,8 +1221,8 @@ static void poolstatus(__maybe_unused SOCKETTYPE c, __maybe_unused char *param, 
 		rpc_user = escape_string(pool->rpc_user, isjson);
 
 		sprintf(buf, isjson
-			? "%s{\"POOL\":%d,\"URL\":\"%s\",\"Status\":\"%s\",\"Priority\":%d,\"Long Poll\":\"%s\",\"Getworks\":%d,\"Accepted\":%d,\"Rejected\":%d,\"Discarded\":%d,\"Stale\":%d,\"Get Failures\":%d,\"Remote Failures\":%d,\"User\":\"%s\"}"
-			: "%sPOOL=%d,URL=%s,Status=%s,Priority=%d,Long Poll=%s,Getworks=%d,Accepted=%d,Rejected=%d,Discarded=%d,Stale=%d,Get Failures=%d,Remote Failures=%d,User=%s" SEPSTR,
+			? "%s{\"POOL\":%d,\"URL\":\"%s\",\"Status\":\"%s\",\"Priority\":%d,\"Long Poll\":\"%s\",\"Getworks\":%d,\"Accepted\":%d,\"Rejected\":%d,\"Discarded\":%d,\"Stale\":%d,\"Get Failures\":%d,\"Remote Failures\":%d,\"User\":\"%s\",\"Last Share Time\":%lu}"
+			: "%sPOOL=%d,URL=%s,Status=%s,Priority=%d,Long Poll=%s,Getworks=%d,Accepted=%d,Rejected=%d,Discarded=%d,Stale=%d,Get Failures=%d,Remote Failures=%d,User=%s,Last Share Time=%lu" SEPSTR,
 			(isjson && (i > 0)) ? COMMA : BLANK,
 			i, rpc_url, status, pool->prio, lp,
 			pool->getwork_requested,
@@ -1231,7 +1231,7 @@ static void poolstatus(__maybe_unused SOCKETTYPE c, __maybe_unused char *param, 
 			pool->stale_shares,
 			pool->getfail_occasions,
 			pool->remotefail_occasions,
-			rpc_user);
+			rpc_user, pool->last_share_time);
 
 		strcat(io_buffer, buf);
 
diff --git a/cgminer.c b/cgminer.c
index 58731a9..d393745 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -1660,6 +1660,7 @@ static bool submit_upstream_work(const struct work *work, CURL *curl)
 		pool->seq_rejects = 0;
 		cgpu->last_share_pool = pool->pool_no;
 		cgpu->last_share_pool_time = time(NULL);
+		pool->last_share_time = cgpu->last_share_pool_time;
 		applog(LOG_DEBUG, "PROOF OF WORK RESULT: true (yay!!!)");
 		if (!QUIET) {
 			if (total_pools > 1)
diff --git a/miner.h b/miner.h
index 27decf2..4115cc5 100644
--- a/miner.h
+++ b/miner.h
@@ -645,6 +645,8 @@ struct pool {
 	int curls;
 	pthread_cond_t cr_cond;
 	struct list_head curlring;
+
+	time_t last_share_time;
 };
 
 struct work {