Browse Source

Send reconnect to all clients that have been asked to reconnect already and don't unset the bool to be able to trim them

master
Con Kolivas 10 years ago
parent
commit
6887f778e9
  1. 15
      src/stratifier.c

15
src/stratifier.c

@ -1160,11 +1160,12 @@ static void reconnect_clients(sdata_t *sdata)
HASH_ITER(hh, sdata->stratum_instances, client, tmpclient) { HASH_ITER(hh, sdata->stratum_instances, client, tmpclient) {
if (client->proxyid == proxy->id && client->notify_id == proxy->parent->notify_id) if (client->proxyid == proxy->id && client->notify_id == proxy->parent->notify_id)
continue; continue;
if (client->reconnect)
continue;
headroom--; headroom--;
reconnects++; reconnects++;
client->reconnect = true; if (client->reconnect)
reconnect_client(sdata, client);
else
client->reconnect = true;
} }
ck_runlock(&sdata->instance_lock); ck_runlock(&sdata->instance_lock);
@ -2122,7 +2123,6 @@ static void reconnect_client(sdata_t *sdata, stratum_instance_t *client)
client->dropped = true; client->dropped = true;
return; return;
} }
client->reconnect = false;
client->reconnect_request = time(NULL); client->reconnect_request = time(NULL);
JSON_CPACK(json_msg, "{sosss[]}", "id", json_null(), "method", "client.reconnect", JSON_CPACK(json_msg, "{sosss[]}", "id", json_null(), "method", "client.reconnect",
"params"); "params");
@ -2170,11 +2170,12 @@ static void dead_proxy(sdata_t *sdata, const char *buf)
HASH_ITER(hh, sdata->stratum_instances, client, tmp) { HASH_ITER(hh, sdata->stratum_instances, client, tmp) {
if (client->proxyid != id || client->subproxyid != subid) if (client->proxyid != id || client->subproxyid != subid)
continue; continue;
if (client->reconnect)
continue;
headroom--; headroom--;
reconnects++; reconnects++;
client->reconnect = true; if (client->reconnect)
reconnect_client(sdata, client);
else
client->reconnect = true;
} }
ck_runlock(&sdata->instance_lock); ck_runlock(&sdata->instance_lock);

Loading…
Cancel
Save