1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-22 20:44:19 +00:00

Check the job_id has not changed on stratum work when deciding if the work is stale as might occur across disconnections.

This commit is contained in:
Con Kolivas 2012-12-08 21:45:15 +11:00
parent fcb265322d
commit 5c4c2d6786

View File

@ -3184,6 +3184,20 @@ static bool stale_work(struct work *work, bool share)
work_expiry = opt_expiry; work_expiry = opt_expiry;
pool = work->pool; pool = work->pool;
if (pool->has_stratum) {
bool same_job = true;
mutex_lock(&pool->pool_lock);
if (strcmp(work->job_id, pool->swork.job_id))
same_job = false;
mutex_unlock(&pool->pool_lock);
if (!same_job) {
applog(LOG_DEBUG, "Work stale due to stratum job_id mismatch");
return true;
}
}
/* Factor in the average getwork delay of this pool, rounding it up to /* Factor in the average getwork delay of this pool, rounding it up to
* the nearest second */ * the nearest second */
getwork_delay = pool->cgminer_pool_stats.getwork_wait_rolling * 5 + 1; getwork_delay = pool->cgminer_pool_stats.getwork_wait_rolling * 5 + 1;