From bc326499ea310e9880060e8d9e7ff7a8d75d982c Mon Sep 17 00:00:00 2001 From: johnny9 <985648+johnny9@users.noreply.github.com> Date: Sun, 11 Jun 2023 15:33:14 -0400 Subject: [PATCH] stratum: parse version-rolling config result --- components/stratum/include/stratum_api.h | 3 ++- components/stratum/stratum_api.c | 10 ++++++---- main/tasks/stratum_task.c | 9 +++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/components/stratum/include/stratum_api.h b/components/stratum/include/stratum_api.h index d079e14e..b80f523d 100644 --- a/components/stratum/include/stratum_api.h +++ b/components/stratum/include/stratum_api.h @@ -16,7 +16,8 @@ typedef enum { MINING_NOTIFY, MINING_SET_DIFFICULTY, MINING_SET_VERSION_MASK, - STRATUM_RESULT + STRATUM_RESULT, + STRATUM_RESULT_VERSION_MASK } stratum_method; typedef struct { diff --git a/components/stratum/stratum_api.c b/components/stratum/stratum_api.c index 23cb70c8..924ffeba 100644 --- a/components/stratum/stratum_api.c +++ b/components/stratum/stratum_api.c @@ -128,7 +128,6 @@ void STRATUM_V1_parse(StratumApiV1Message* message, const char * stratum_json) } else if (strcmp("mining.set_version_mask", method_json->valuestring) == 0) { result = MINING_SET_VERSION_MASK; } - } else { //parse results cJSON * result_json = cJSON_GetObjectItem(json, "result"); @@ -136,15 +135,18 @@ void STRATUM_V1_parse(StratumApiV1Message* message, const char * stratum_json) result = STRATUM_RESULT; - - bool response_success = false; if (result_json != NULL && cJSON_IsTrue(result_json)) { response_success = true; } message->response_success = response_success; - + } else { + cJSON * mask = cJSON_GetObjectItem(result_json, "version-rolling.mask"); + if (mask != NULL) { + result = STRATUM_RESULT_VERSION_MASK; + message->version_mask = strtoul(mask->valuestring, NULL, 16); + } } } diff --git a/main/tasks/stratum_task.c b/main/tasks/stratum_task.c index 67cd88ad..ec1a6cfa 100644 --- a/main/tasks/stratum_task.c +++ b/main/tasks/stratum_task.c @@ -127,12 +127,12 @@ void stratum_task(void * pvParameters) ESP_LOGI(TAG, "Set stratum difficulty: %d", SYSTEM_TASK_MODULE.stratum_difficulty); } - } else if (stratum_api_v1_message.method == MINING_SET_VERSION_MASK) { + } else if (stratum_api_v1_message.method == MINING_SET_VERSION_MASK || stratum_api_v1_message.method == STRATUM_RESULT_VERSION_MASK) { //1fffe000 ESP_LOGI(TAG, "Set version mask: %08x", stratum_api_v1_message.version_mask); + GLOBAL_STATE->version_mask = stratum_api_v1_message.version_mask; } else if (stratum_api_v1_message.method == STRATUM_RESULT) { - if (stratum_api_v1_message.response_success) { ESP_LOGI(TAG, "message result accepted"); SYSTEM_notify_accepted_share(&GLOBAL_STATE->SYSTEM_MODULE); @@ -140,10 +140,7 @@ void stratum_task(void * pvParameters) ESP_LOGE(TAG, "message result rejected"); SYSTEM_notify_rejected_share(&GLOBAL_STATE->SYSTEM_MODULE); } - } - - - + } } if (GLOBAL_STATE->sock != -1)