From 383682190bdccd776b351ebb85780a446a2884ba Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Tue, 9 Jan 2018 21:27:09 +0100 Subject: [PATCH] stratum: prevent double auth & ignore invalid sockets seems to works well, but not a normal case/behavior --- stratum/client.cpp | 7 +++++++ stratum/job_send.cpp | 1 + 2 files changed, 8 insertions(+) diff --git a/stratum/client.cpp b/stratum/client.cpp index e0bf1fb..e50f03c 100644 --- a/stratum/client.cpp +++ b/stratum/client.cpp @@ -197,6 +197,13 @@ bool client_validate_user_address(YAAMP_CLIENT *client) bool client_authorize(YAAMP_CLIENT *client, json_value *json_params) { + + if(g_list_client.Find(client)) { + clientlog(client, "Already logged"); + client_send_error(client, 21, "Already logged"); + return false; + } + if(json_params->u.array.length>1) strncpy(client->password, json_params->u.array.values[1]->u.string.ptr, 1023); diff --git a/stratum/job_send.cpp b/stratum/job_send.cpp index d1d8567..8ed6a23 100644 --- a/stratum/job_send.cpp +++ b/stratum/job_send.cpp @@ -107,6 +107,7 @@ void job_broadcast(YAAMP_JOB *job) { YAAMP_CLIENT *client = (YAAMP_CLIENT *)li->data; if(client->deleted) continue; + if(!client->sock) continue; // if(client->reconnecting && client->locked) continue; if(client->jobid_next != job->id) continue;