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; } }