diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 01966f9741..32c9c621e8 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -2034,3 +2034,12 @@ bool esp_http_client_is_persistent_connection(esp_http_client_handle_t client) } return false; } + +int esp_http_client_get_socket(esp_http_client_handle_t client) +{ + if (client == NULL || client->transport == NULL) { + return -1; + } + + return esp_transport_get_socket(client->transport); +} diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index e2cf27a584..a17c4d1400 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -857,6 +857,17 @@ esp_err_t esp_http_client_get_chunk_length(esp_http_client_handle_t client, int */ bool esp_http_client_is_persistent_connection(esp_http_client_handle_t client); +/** + * @brief Get the socket from the underlying transport + * + * @param client The HTTP client handle + * + * @return + * - -1 if the client is NULL or the transport is not initialized + * - The socket file descriptor if successful + */ +int esp_http_client_get_socket(esp_http_client_handle_t client); + #ifdef __cplusplus } #endif