Close any existing stratum socket if we are attempting to restart stratum so the pool knows the connection has gone.
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
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);