From 0497b1104ad033d79a76aa30972914b48ff0df60 Mon Sep 17 00:00:00 2001 From: terratec <989319+terratec@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:50:22 +0100 Subject: [PATCH] Keep old pool config synchronized until reboot (#543) --- main/global_state.h | 4 ++++ main/system.c | 10 +++++++++- main/tasks/asic_result_task.c | 5 ++--- main/tasks/stratum_task.c | 8 +++----- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/main/global_state.h b/main/global_state.h index 744171cf..86a28279 100644 --- a/main/global_state.h +++ b/main/global_state.h @@ -74,6 +74,10 @@ typedef struct char * fallback_pool_url; uint16_t pool_port; uint16_t fallback_pool_port; + char * pool_user; + char * fallback_pool_user; + char * pool_pass; + char * fallback_pool_pass; bool is_using_fallback; uint16_t overheat_mode; uint32_t lastClockSync; diff --git a/main/system.c b/main/system.c index aac55243..b6707c51 100644 --- a/main/system.c +++ b/main/system.c @@ -63,10 +63,18 @@ void SYSTEM_init_system(GlobalState * GLOBAL_STATE) module->pool_url = nvs_config_get_string(NVS_CONFIG_STRATUM_URL, CONFIG_STRATUM_URL); module->fallback_pool_url = nvs_config_get_string(NVS_CONFIG_FALLBACK_STRATUM_URL, CONFIG_FALLBACK_STRATUM_URL); - //set the pool port + // set the pool port module->pool_port = nvs_config_get_u16(NVS_CONFIG_STRATUM_PORT, CONFIG_STRATUM_PORT); module->fallback_pool_port = nvs_config_get_u16(NVS_CONFIG_FALLBACK_STRATUM_PORT, CONFIG_FALLBACK_STRATUM_PORT); + // set the pool user + module->pool_user = nvs_config_get_string(NVS_CONFIG_STRATUM_USER, CONFIG_STRATUM_USER); + module->fallback_pool_user = nvs_config_get_string(NVS_CONFIG_FALLBACK_STRATUM_USER, CONFIG_FALLBACK_STRATUM_USER); + + // set the pool password + module->pool_pass = nvs_config_get_string(NVS_CONFIG_STRATUM_PASS, CONFIG_STRATUM_PW); + module->fallback_pool_pass = nvs_config_get_string(NVS_CONFIG_FALLBACK_STRATUM_PASS, CONFIG_FALLBACK_STRATUM_PW); + // set fallback to false. module->is_using_fallback = false; diff --git a/main/tasks/asic_result_task.c b/main/tasks/asic_result_task.c index d81f1bdd..8b15d3cc 100644 --- a/main/tasks/asic_result_task.c +++ b/main/tasks/asic_result_task.c @@ -43,7 +43,7 @@ void ASIC_result_task(void *pvParameters) if (nonce_diff > GLOBAL_STATE->ASIC_TASK_MODULE.active_jobs[job_id]->pool_diff) { - char * user = GLOBAL_STATE->SYSTEM_MODULE.is_using_fallback ? nvs_config_get_string(NVS_CONFIG_FALLBACK_STRATUM_USER, FALLBACK_STRATUM_USER) : nvs_config_get_string(NVS_CONFIG_STRATUM_USER, STRATUM_USER); + char * user = GLOBAL_STATE->SYSTEM_MODULE.is_using_fallback ? GLOBAL_STATE->SYSTEM_MODULE.fallback_pool_user : GLOBAL_STATE->SYSTEM_MODULE.pool_user; int ret = STRATUM_V1_submit_share( GLOBAL_STATE->sock, user, @@ -52,7 +52,6 @@ void ASIC_result_task(void *pvParameters) GLOBAL_STATE->ASIC_TASK_MODULE.active_jobs[job_id]->ntime, asic_result->nonce, asic_result->rolled_version ^ GLOBAL_STATE->ASIC_TASK_MODULE.active_jobs[job_id]->version); - free(user); if (ret < 0) { ESP_LOGI(TAG, "Unable to write share to socket. Closing connection. Ret: %d (errno %d: %s)", ret, errno, strerror(errno)); @@ -62,4 +61,4 @@ void ASIC_result_task(void *pvParameters) SYSTEM_notify_found_nonce(GLOBAL_STATE, nonce_diff, job_id); } -} \ No newline at end of file +} diff --git a/main/tasks/stratum_task.c b/main/tasks/stratum_task.c index c3f9edc7..8b921339 100644 --- a/main/tasks/stratum_task.c +++ b/main/tasks/stratum_task.c @@ -242,13 +242,11 @@ void stratum_task(void * pvParameters) // mining.subscribe - ID: 2 STRATUM_V1_subscribe(GLOBAL_STATE->sock, GLOBAL_STATE->asic_model_str); - char * username = GLOBAL_STATE->SYSTEM_MODULE.is_using_fallback ? nvs_config_get_string(NVS_CONFIG_FALLBACK_STRATUM_USER, FALLBACK_STRATUM_USER) : nvs_config_get_string(NVS_CONFIG_STRATUM_USER, STRATUM_USER); - char * password = GLOBAL_STATE->SYSTEM_MODULE.is_using_fallback ? nvs_config_get_string(NVS_CONFIG_FALLBACK_STRATUM_PASS, FALLBACK_STRATUM_PW) : nvs_config_get_string(NVS_CONFIG_STRATUM_PASS, STRATUM_PW); + char * username = GLOBAL_STATE->SYSTEM_MODULE.is_using_fallback ? GLOBAL_STATE->SYSTEM_MODULE.fallback_pool_user : GLOBAL_STATE->SYSTEM_MODULE.pool_user; + char * password = GLOBAL_STATE->SYSTEM_MODULE.is_using_fallback ? GLOBAL_STATE->SYSTEM_MODULE.fallback_pool_pass : GLOBAL_STATE->SYSTEM_MODULE.pool_pass; //mining.authorize - ID: 3 STRATUM_V1_authenticate(GLOBAL_STATE->sock, username, password); - free(password); - free(username); //mining.suggest_difficulty - ID: 4 STRATUM_V1_suggest_difficulty(GLOBAL_STATE->sock, STRATUM_DIFFICULTY); @@ -315,4 +313,4 @@ void stratum_task(void * pvParameters) } } vTaskDelete(NULL); -} \ No newline at end of file +}