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,6 +273,13 @@ static void ota_check_task(void *arg)
|
|||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
wifi_manager_set_power_save(false);
|
||||||
|
|
||||||
|
esp_err_t ret = ESP_FAIL;
|
||||||
|
int status_code = 0;
|
||||||
|
|
||||||
|
for (int attempt = 1; attempt <= 3; attempt++) {
|
||||||
|
rx.len = 0;
|
||||||
rx.buf[0] = '\0';
|
rx.buf[0] = '\0';
|
||||||
|
|
||||||
esp_http_client_config_t cfg = {
|
esp_http_client_config_t cfg = {
|
||||||
@@ -288,22 +295,30 @@ static void ota_check_task(void *arg)
|
|||||||
|
|
||||||
esp_http_client_handle_t client = esp_http_client_init(&cfg);
|
esp_http_client_handle_t client = esp_http_client_init(&cfg);
|
||||||
if (!client) {
|
if (!client) {
|
||||||
wifi_manager_release_net_lock();
|
ret = ESP_ERR_NO_MEM;
|
||||||
free(rx.buf);
|
break;
|
||||||
set_state(OTA_STATUS_FAILED, "HTTP init failed");
|
|
||||||
s_ota_task_handle = NULL;
|
|
||||||
vTaskDelete(NULL);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_http_client_set_method(client, HTTP_METHOD_GET);
|
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, "User-Agent", "MTGCompanion/1.0");
|
||||||
esp_http_client_set_header(client, "Accept", "application/json");
|
esp_http_client_set_header(client, "Accept", "application/json");
|
||||||
|
|
||||||
esp_err_t ret = esp_http_client_perform(client);
|
ret = esp_http_client_perform(client);
|
||||||
int status_code = esp_http_client_get_status_code(client);
|
status_code = esp_http_client_get_status_code(client);
|
||||||
esp_http_client_cleanup(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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
wifi_manager_release_net_lock();
|
wifi_manager_release_net_lock();
|
||||||
|
wifi_manager_set_power_save(true);
|
||||||
|
|
||||||
|
|
||||||
if (ret != ESP_OK || status_code != 200) {
|
if (ret != ESP_OK || status_code != 200) {
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ static char s_active_ssid[WIFI_SSID_MAX_LEN + 1] = {0};
|
|||||||
static SemaphoreHandle_t s_wifi_mux = NULL;
|
static SemaphoreHandle_t s_wifi_mux = NULL;
|
||||||
static SemaphoreHandle_t s_net_lock = NULL;
|
static SemaphoreHandle_t s_net_lock = NULL;
|
||||||
static bool s_manual_disconnect = false;
|
static bool s_manual_disconnect = false;
|
||||||
|
static esp_netif_t *s_sta_netif = NULL;
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------ */
|
||||||
@@ -198,6 +199,12 @@ static void wifi_event_handler(void *arg, esp_event_base_t base, int32_t id, voi
|
|||||||
if (s_wifi_group) {
|
if (s_wifi_group) {
|
||||||
xEventGroupSetBits(s_wifi_group, WIFI_CONNECTED_BIT);
|
xEventGroupSetBits(s_wifi_group, WIFI_CONNECTED_BIT);
|
||||||
}
|
}
|
||||||
|
if (s_sta_netif != NULL) {
|
||||||
|
esp_netif_dns_info_t dns_fallback = {0};
|
||||||
|
dns_fallback.ip.type = ESP_IPADDR_TYPE_V4;
|
||||||
|
dns_fallback.ip.u_addr.ip4.addr = ESP_IP4TOADDR(8, 8, 8, 8);
|
||||||
|
esp_netif_set_dns_info(s_sta_netif, ESP_NETIF_DNS_FALLBACK, &dns_fallback);
|
||||||
|
}
|
||||||
/* Enable modem power saving when idle on station network */
|
/* Enable modem power saving when idle on station network */
|
||||||
esp_wifi_set_ps(WIFI_PS_MIN_MODEM);
|
esp_wifi_set_ps(WIFI_PS_MIN_MODEM);
|
||||||
ESP_LOGI(TAG, "Wi-Fi modem sleep enabled (WIFI_PS_MIN_MODEM: ~30-40 mA saved)");
|
ESP_LOGI(TAG, "Wi-Fi modem sleep enabled (WIFI_PS_MIN_MODEM: ~30-40 mA saved)");
|
||||||
@@ -372,9 +379,9 @@ esp_err_t wifi_manager_init(void)
|
|||||||
|
|
||||||
ESP_ERROR_CHECK(esp_netif_init());
|
ESP_ERROR_CHECK(esp_netif_init());
|
||||||
ESP_ERROR_CHECK(esp_event_loop_create_default());
|
ESP_ERROR_CHECK(esp_event_loop_create_default());
|
||||||
esp_netif_t *sta_netif = esp_netif_create_default_wifi_sta();
|
s_sta_netif = esp_netif_create_default_wifi_sta();
|
||||||
if (sta_netif != NULL) {
|
if (s_sta_netif != NULL) {
|
||||||
esp_netif_set_hostname(sta_netif, "mtg-companion");
|
esp_netif_set_hostname(s_sta_netif, "mtg-companion");
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_netif_t *ap_netif = esp_netif_create_default_wifi_ap();
|
esp_netif_t *ap_netif = esp_netif_create_default_wifi_ap();
|
||||||
|
|||||||
Reference in New Issue
Block a user