Commit 6875dc46b67ffa2d2a75a9bdfefe865adfeffc1d

Con Kolivas 2013-03-07T13:50:25

Close any existing stratum socket if we are attempting to restart stratum so the pool knows the connection has gone.

diff --git a/util.c b/util.c
index e95334c..9bde6e3 100644
--- a/util.c
+++ b/util.c
@@ -1627,15 +1627,6 @@ out:
 	return ret;
 }
 
-bool restart_stratum(struct pool *pool)
-{
-	if (!initiate_stratum(pool))
-		return false;
-	if (!auth_stratum(pool))
-		return false;
-	return true;
-}
-
 void suspend_stratum(struct pool *pool)
 {
 	applog(LOG_INFO, "Closing socket for stratum pool %d", pool->pool_no);
@@ -1645,6 +1636,17 @@ void suspend_stratum(struct pool *pool)
 	CLOSESOCKET(pool->sock);
 }
 
+bool restart_stratum(struct pool *pool)
+{
+	if (pool->stratum_active)
+		suspend_stratum(pool);
+	if (!initiate_stratum(pool))
+		return false;
+	if (!auth_stratum(pool))
+		return false;
+	return true;
+}
+
 void dev_error(struct cgpu_info *dev, enum dev_reason reason)
 {
 	dev->device_last_not_well = time(NULL);