esp_https_ota: fix bug where `http_client_init_cb` is called after `esp_http_client_perform()` instead of before.
Closes
@@ -254,6 +254,14 @@ esp_err_t esp_https_ota_begin(const esp_https_ota_config_t *ota_config, esp_http
goto failure;
}
+ if (ota_config->http_client_init_cb) {
+ err = ota_config->http_client_init_cb(https_ota_handle->http_client);
+ if (err != ESP_OK) {
+ ESP_LOGE(TAG, "http_client_init_cb returned 0x%x", err);
+ goto http_cleanup;
+ }
+ }
+
if (https_ota_handle->partial_http_download) {
esp_http_client_set_method(https_ota_handle->http_client, HTTP_METHOD_HEAD);
err = esp_http_client_perform(https_ota_handle->http_client);
@@ -286,14 +294,6 @@ esp_err_t esp_https_ota_begin(const esp_https_ota_config_t *ota_config, esp_http
esp_http_client_set_method(https_ota_handle->http_client, HTTP_METHOD_GET);
}
- if (ota_config->http_client_init_cb) {
- err = ota_config->http_client_init_cb(https_ota_handle->http_client);
- if (err != ESP_OK) {
- ESP_LOGE(TAG, "http_client_init_cb returned 0x%x", err);
- goto http_cleanup;
- }
- }
-
err = _http_connect(https_ota_handle->http_client);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to establish HTTP connection");
