AP menu
All checks were successful
ESP32 Build & Release / build (push) Successful in 6m40s

This commit is contained in:
2026-09-12 13:47:34 +02:00
parent d691febfe4
commit 3708674bbb
14 changed files with 289 additions and 120 deletions

View File

@@ -148,6 +148,12 @@ static esp_err_t http_event_handler(esp_http_client_event_t *evt)
static esp_err_t http_request(const char *url, http_sink_t *sink)
{
if (wifi_manager_acquire_net_lock(pdMS_TO_TICKS(15000)) != ESP_OK) {
ESP_LOGW(TAG, "Network lock busy (e.g. OTA update in progress), deferring fetch %s", url);
return ESP_ERR_TIMEOUT;
}
esp_err_t overall_ret = ESP_FAIL;
for (int attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
if (sink->file != NULL) {
rewind(sink->file);
@@ -168,7 +174,8 @@ static esp_err_t http_request(const char *url, http_sink_t *sink)
};
esp_http_client_handle_t client = esp_http_client_init(&cfg);
if (client == NULL) {
return ESP_ERR_NO_MEM;
overall_ret = ESP_ERR_NO_MEM;
break;
}
esp_http_client_set_method(client, HTTP_METHOD_GET);
@@ -181,17 +188,21 @@ static esp_err_t http_request(const char *url, http_sink_t *sink)
ESP_LOGD(TAG, "GET %s -> %s (status %d)", url, esp_err_to_name(ret), status);
if (ret == ESP_OK && status >= 200 && status < 300) {
return ESP_OK;
overall_ret = ESP_OK;
break;
}
if (ret == ESP_OK && (status < 200 || status >= 300)) {
ESP_LOGW(TAG, "HTTP GET returned status %d for %s", status, url);
}
if (sink->err != ESP_OK) {
return sink->err;
overall_ret = sink->err;
break;
}
vTaskDelay(pdMS_TO_TICKS(500));
}
return ESP_FAIL;
wifi_manager_release_net_lock();
return overall_ret;
}
static esp_err_t http_get_json(const char *url, char **out_buf)