fix(dns): register 8.8.8.8 fallback DNS, wake Wi-Fi during Gitea check, and add retries
All checks were successful
ESP32 Build & Release / build (push) Successful in 1m14s
All checks were successful
ESP32 Build & Release / build (push) Successful in 1m14s
This commit is contained in:
@@ -273,37 +273,52 @@ static void ota_check_task(void *arg)
|
||||
vTaskDelete(NULL);
|
||||
return;
|
||||
}
|
||||
rx.buf[0] = '\0';
|
||||
wifi_manager_set_power_save(false);
|
||||
|
||||
esp_http_client_config_t cfg = {
|
||||
.url = GITEA_RELEASE_API_URL,
|
||||
.transport_type = HTTP_TRANSPORT_OVER_SSL,
|
||||
.timeout_ms = 15000,
|
||||
.event_handler = http_rx_event_handler,
|
||||
.user_data = &rx,
|
||||
.buffer_size = 1024,
|
||||
.cert_pem = s_isrg_root_x1_pem,
|
||||
.cert_len = sizeof(s_isrg_root_x1_pem),
|
||||
};
|
||||
esp_err_t ret = ESP_FAIL;
|
||||
int status_code = 0;
|
||||
|
||||
esp_http_client_handle_t client = esp_http_client_init(&cfg);
|
||||
if (!client) {
|
||||
wifi_manager_release_net_lock();
|
||||
free(rx.buf);
|
||||
set_state(OTA_STATUS_FAILED, "HTTP init failed");
|
||||
s_ota_task_handle = NULL;
|
||||
vTaskDelete(NULL);
|
||||
return;
|
||||
for (int attempt = 1; attempt <= 3; attempt++) {
|
||||
rx.len = 0;
|
||||
rx.buf[0] = '\0';
|
||||
|
||||
esp_http_client_config_t cfg = {
|
||||
.url = GITEA_RELEASE_API_URL,
|
||||
.transport_type = HTTP_TRANSPORT_OVER_SSL,
|
||||
.timeout_ms = 15000,
|
||||
.event_handler = http_rx_event_handler,
|
||||
.user_data = &rx,
|
||||
.buffer_size = 1024,
|
||||
.cert_pem = s_isrg_root_x1_pem,
|
||||
.cert_len = sizeof(s_isrg_root_x1_pem),
|
||||
};
|
||||
|
||||
esp_http_client_handle_t client = esp_http_client_init(&cfg);
|
||||
if (!client) {
|
||||
ret = ESP_ERR_NO_MEM;
|
||||
break;
|
||||
}
|
||||
|
||||
esp_http_client_set_method(client, HTTP_METHOD_GET);
|
||||
esp_http_client_set_header(client, "User-Agent", "MTGCompanion/1.0");
|
||||
esp_http_client_set_header(client, "Accept", "application/json");
|
||||
|
||||
ret = esp_http_client_perform(client);
|
||||
status_code = esp_http_client_get_status_code(client);
|
||||
esp_http_client_cleanup(client);
|
||||
|
||||
if (ret == ESP_OK && status_code == 200) {
|
||||
break;
|
||||
}
|
||||
if (attempt < 3) {
|
||||
ESP_LOGW(TAG, "Gitea check attempt %d failed: %s (status %d), retrying in 1s...",
|
||||
attempt, esp_err_to_name(ret), status_code);
|
||||
vTaskDelay(pdMS_TO_TICKS(1000));
|
||||
}
|
||||
}
|
||||
|
||||
esp_http_client_set_method(client, HTTP_METHOD_GET);
|
||||
esp_http_client_set_header(client, "User-Agent", "MTGCompanion/1.0");
|
||||
esp_http_client_set_header(client, "Accept", "application/json");
|
||||
|
||||
esp_err_t ret = esp_http_client_perform(client);
|
||||
int status_code = esp_http_client_get_status_code(client);
|
||||
esp_http_client_cleanup(client);
|
||||
wifi_manager_release_net_lock();
|
||||
wifi_manager_set_power_save(true);
|
||||
|
||||
|
||||
if (ret != ESP_OK || status_code != 200) {
|
||||
|
||||
Reference in New Issue
Block a user