mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
[esp-tls] Add addr_family option to esp_tls_cfg_t
This commit is contained in:
parent
4c98bee8a4
commit
0abd1cb51f
@ -141,12 +141,24 @@ esp_tls_t *esp_tls_init(void)
|
|||||||
return tls;
|
return tls;
|
||||||
}
|
}
|
||||||
|
|
||||||
static esp_err_t esp_tls_hostname_to_fd(const char *host, size_t hostlen, int port, struct sockaddr_storage *address, int* fd)
|
static esp_err_t esp_tls_hostname_to_fd(const char *host, size_t hostlen, int port, esp_tls_addr_family_t addr_family, struct sockaddr_storage *address, int* fd)
|
||||||
{
|
{
|
||||||
struct addrinfo *address_info;
|
struct addrinfo *address_info;
|
||||||
struct addrinfo hints;
|
struct addrinfo hints;
|
||||||
memset(&hints, 0, sizeof(hints));
|
memset(&hints, 0, sizeof(hints));
|
||||||
|
|
||||||
|
switch(addr_family) {
|
||||||
|
case ESP_TLS_AF_INET:
|
||||||
|
hints.ai_family = AF_INET;
|
||||||
|
break;
|
||||||
|
case ESP_TLS_AF_INET6:
|
||||||
|
hints.ai_family = AF_INET6;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
hints.ai_family = AF_UNSPEC;
|
hints.ai_family = AF_UNSPEC;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
hints.ai_socktype = SOCK_STREAM;
|
hints.ai_socktype = SOCK_STREAM;
|
||||||
|
|
||||||
char *use_host = strndup(host, hostlen);
|
char *use_host = strndup(host, hostlen);
|
||||||
@ -283,7 +295,7 @@ static inline esp_err_t tcp_connect(const char *host, int hostlen, int port, con
|
|||||||
{
|
{
|
||||||
struct sockaddr_storage address;
|
struct sockaddr_storage address;
|
||||||
int fd;
|
int fd;
|
||||||
esp_err_t ret = esp_tls_hostname_to_fd(host, hostlen, port, &address, &fd);
|
esp_err_t ret = esp_tls_hostname_to_fd(host, hostlen, port, cfg->addr_family, &address, &fd);
|
||||||
if (ret != ESP_OK) {
|
if (ret != ESP_OK) {
|
||||||
ESP_INT_EVENT_TRACKER_CAPTURE(error_handle, ESP_TLS_ERR_TYPE_SYSTEM, errno);
|
ESP_INT_EVENT_TRACKER_CAPTURE(error_handle, ESP_TLS_ERR_TYPE_SYSTEM, errno);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -69,6 +69,15 @@ typedef struct tls_keep_alive_cfg {
|
|||||||
int keep_alive_count; /*!< Keep-alive packet retry send count */
|
int keep_alive_count; /*!< Keep-alive packet retry send count */
|
||||||
} tls_keep_alive_cfg_t;
|
} tls_keep_alive_cfg_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @brief ESP-TLS Address families
|
||||||
|
*/
|
||||||
|
typedef enum esp_tls_addr_family {
|
||||||
|
ESP_TLS_AF_UNSPEC = 0, /**< Unspecified address family. */
|
||||||
|
ESP_TLS_AF_INET, /**< IPv4 address family. */
|
||||||
|
ESP_TLS_AF_INET6, /**< IPv6 address family. */
|
||||||
|
} esp_tls_addr_family_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ESP-TLS configuration parameters
|
* @brief ESP-TLS configuration parameters
|
||||||
*
|
*
|
||||||
@ -180,6 +189,8 @@ typedef struct esp_tls_cfg {
|
|||||||
#ifdef CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS
|
#ifdef CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS
|
||||||
esp_tls_client_session_t *client_session; /*! Pointer for the client session ticket context. */
|
esp_tls_client_session_t *client_session; /*! Pointer for the client session ticket context. */
|
||||||
#endif /* CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS */
|
#endif /* CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS */
|
||||||
|
|
||||||
|
esp_tls_addr_family_t addr_family; /*!< The address family to use when connecting to a host. */
|
||||||
} esp_tls_cfg_t;
|
} esp_tls_cfg_t;
|
||||||
|
|
||||||
#ifdef CONFIG_ESP_TLS_SERVER
|
#ifdef CONFIG_ESP_TLS_SERVER
|
||||||
|
Loading…
Reference in New Issue
Block a user