mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-17 23:28:15 +00:00
lwip: Support IPv6 only mode
This commit is contained in:
@@ -24,11 +24,18 @@ int cs_create_ctrl_sock(int port)
|
||||
}
|
||||
|
||||
int ret;
|
||||
struct sockaddr_in addr;
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
addr.sin_family = AF_INET;
|
||||
addr.sin_port = htons(port);
|
||||
inet_aton("127.0.0.1", &addr.sin_addr);
|
||||
struct sockaddr_storage addr = {};
|
||||
#ifdef CONFIG_LWIP_IPV4
|
||||
struct sockaddr_in *addr4 = (struct sockaddr_in *)&addr;
|
||||
addr4->sin_family = AF_INET;
|
||||
addr4->sin_port = htons(port);
|
||||
inet_aton("127.0.0.1", &addr4->sin_addr);
|
||||
#else
|
||||
struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&addr;
|
||||
addr6->sin6_family = AF_INET6;
|
||||
addr6->sin6_port = htons(port);
|
||||
inet6_aton("::1", &addr6->sin6_addr);
|
||||
#endif
|
||||
ret = bind(fd, (struct sockaddr *)&addr, sizeof(addr));
|
||||
if (ret < 0) {
|
||||
close(fd);
|
||||
@@ -45,10 +52,18 @@ void cs_free_ctrl_sock(int fd)
|
||||
int cs_send_to_ctrl_sock(int send_fd, int port, void *data, unsigned int data_len)
|
||||
{
|
||||
int ret;
|
||||
struct sockaddr_in to_addr;
|
||||
to_addr.sin_family = AF_INET;
|
||||
to_addr.sin_port = htons(port);
|
||||
inet_aton("127.0.0.1", &to_addr.sin_addr);
|
||||
struct sockaddr_storage to_addr = {};
|
||||
#ifdef CONFIG_LWIP_IPV4
|
||||
struct sockaddr_in *addr4 = (struct sockaddr_in *)&to_addr;
|
||||
addr4->sin_family = AF_INET;
|
||||
addr4->sin_port = htons(port);
|
||||
inet_aton("127.0.0.1", &addr4->sin_addr);
|
||||
#else
|
||||
struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&to_addr;
|
||||
addr6->sin6_family = AF_INET6;
|
||||
addr6->sin6_port = htons(port);
|
||||
inet6_aton("::1", &addr6->sin6_addr);
|
||||
#endif
|
||||
ret = sendto(send_fd, data, data_len, 0, (struct sockaddr *)&to_addr, sizeof(to_addr));
|
||||
|
||||
if (ret < 0) {
|
||||
|
Reference in New Issue
Block a user