Browse Source

Close any sockets opened if we fail to initiate stratum but have opened the socket.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
07ae6172cc
  1. 23
      util.c

23
util.c

@ -1504,10 +1504,19 @@ out:
return ret; return ret;
} }
void suspend_stratum(struct pool *pool)
{
applog(LOG_INFO, "Closing socket for stratum pool %d", pool->pool_no);
mutex_lock(&pool->stratum_lock);
pool->stratum_active = false;
mutex_unlock(&pool->stratum_lock);
CLOSESOCKET(pool->sock);
}
bool initiate_stratum(struct pool *pool) bool initiate_stratum(struct pool *pool)
{ {
bool ret = false, recvd = false, noresume = false, sockd = false;
char s[RBUFSIZE], *sret = NULL, *nonce1, *sessionid; char s[RBUFSIZE], *sret = NULL, *nonce1, *sessionid;
bool ret = false, recvd = false, noresume = false;
json_t *val = NULL, *res_val, *err_val; json_t *val = NULL, *res_val, *err_val;
json_error_t err; json_error_t err;
int n2size; int n2size;
@ -1515,6 +1524,7 @@ bool initiate_stratum(struct pool *pool)
if (!setup_stratum_curl(pool)) if (!setup_stratum_curl(pool))
goto out; goto out;
sockd = true;
resend: resend:
if (!recvd) { if (!recvd) {
if (pool->sessionid) if (pool->sessionid)
@ -1622,20 +1632,13 @@ out:
goto resend; goto resend;
} }
applog(LOG_DEBUG, "Initiate stratum failed"); applog(LOG_DEBUG, "Initiate stratum failed");
if (sockd)
suspend_stratum(pool);
} }
return ret; return ret;
} }
void suspend_stratum(struct pool *pool)
{
applog(LOG_INFO, "Closing socket for stratum pool %d", pool->pool_no);
mutex_lock(&pool->stratum_lock);
pool->stratum_active = false;
mutex_unlock(&pool->stratum_lock);
CLOSESOCKET(pool->sock);
}
bool restart_stratum(struct pool *pool) bool restart_stratum(struct pool *pool)
{ {
if (pool->stratum_active) if (pool->stratum_active)

Loading…
Cancel
Save