Jelajahi Sumber

兼容 ipv4 && ipv6

guozhanxin 4 tahun lalu
induk
melakukan
05bf357285
1 mengubah file dengan 12 tambahan dan 0 penghapusan
  1. 12 0
      components/net/sal_socket/src/sal_socket.c

+ 12 - 0
components/net/sal_socket/src/sal_socket.c

@@ -1021,7 +1021,13 @@ int sal_ioctlsocket(int socket, long cmd, void *arg)
         {
         case SIOCGIFADDR:
             addr_in = (struct sockaddr_in *)&(ifr->ifr_ifru.ifru_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 "not only support IPV6"
+#endif /* NETDEV_IPV4 && NETDEV_IPV6*/
             return 0;
 
         case SIOCSIFADDR:
@@ -1032,7 +1038,13 @@ int sal_ioctlsocket(int socket, long cmd, void *arg)
 
         case SIOCGIFNETMASK:
             addr_in = (struct sockaddr_in *)&(ifr->ifr_ifru.ifru_netmask);
+#if NETDEV_IPV4 && NETDEV_IPV6
             addr_in->sin_addr.s_addr = sock->netdev->netmask.u_addr.ip4.addr;
+#elif NETDEV_IPV4
+            addr_in->sin_addr.s_addr = sock->netdev->netmask.addr;
+#elif NETDEV_IPV6
+#error "not only support IPV6"
+#endif /* NETDEV_IPV4 && NETDEV_IPV6*/
             return 0;
 
         case SIOCSIFNETMASK: