Browse Source

Only curl easy cleanup a stratum curl if it exists.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
1a74bc5631
  1. 14
      util.c

14
util.c

@ -1508,15 +1508,17 @@ void suspend_stratum(struct pool *pool) @@ -1508,15 +1508,17 @@ 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 = pool->stratum_notify = false;
if (pool->stratum_curl) {
#if CURL_HAS_KEEPALIVE
curl_easy_cleanup(pool->stratum_curl);
curl_easy_cleanup(pool->stratum_curl);
#else
/* Old versions of libcurl seem to crash occasionally on this since
* the socket is modified in keep_sockalive in ways curl does not
* know about so sacrifice the ram knowing we leak one curl handle
* every time we disconnect stratum. */
CLOSESOCKET(pool->sock);
/* Old versions of libcurl seem to crash occasionally on this since
* the socket is modified in keep_sockalive in ways curl does not
* know about so sacrifice the ram knowing we leak one curl handle
* every time we disconnect stratum. */
CLOSESOCKET(pool->sock);
#endif
}
pool->stratum_curl = NULL;
mutex_unlock(&pool->stratum_lock);
}

Loading…
Cancel
Save