diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 6ac883da5d3..48148bed37a 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 */ @@ -2085,3 +2085,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 48d30d48571..c444e8247f0 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 */ @@ -902,6 +902,17 @@ esp_http_state_t esp_http_client_get_state(esp_http_client_handle_t client); */ 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