summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/net/sal/src/sal_socket.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/components/net/sal/src/sal_socket.c b/components/net/sal/src/sal_socket.c
index 9d343b8c1f..f59ee454fe 100644
--- a/components/net/sal/src/sal_socket.c
+++ b/components/net/sal/src/sal_socket.c
@@ -1097,7 +1097,14 @@ int sal_ioctlsocket(int socket, long cmd, void *arg)
if (!strcmp(ifr->ifr_ifrn.ifrn_name, netdev->name))
{
addr_in = (struct sockaddr_in *)&(ifr->ifr_ifru.ifru_addr);
- addr_in->sin_addr.s_addr = netdev->ip_addr.addr;
+ #if NETDEV_IPV4 && NETDEV_IPV6
+ addr_in->sin_addr.s_addr = sock->netdev->ip_addr.u_addr.ip4.addr;
+ #elif NETDEV_IPV4
+ addr_in->sin_addr.s_addr = sock->netdev->ip_addr.addr;
+ #elif NETDEV_IPV6
+ #error "Do not only support IPV6"
+ #endif /* NETDEV_IPV4 && NETDEV_IPV6 */
+
return 0;
}
}