Browse Source

[Bugfix]Update netdev info after registered

修复ifconfig命令无法正确显示IP,网关,掩码的问题
nicedayzhu 6 years ago
parent
commit
6454fa81d8
1 changed files with 10 additions and 5 deletions
  1. 10 5
      components/net/lwip-2.1.0/src/netif/ethernetif.c

+ 10 - 5
components/net/lwip-2.1.0/src/netif/ethernetif.c

@@ -303,11 +303,6 @@ static int netdev_add(struct netif *lwip_netif)
     {
     {
         return -ERR_IF;
         return -ERR_IF;
     }
     }
-
-    netdev->flags = lwip_netif->flags;
-    netdev->ops = &lwip_netdev_ops;
-    netdev->hwaddr_len =  lwip_netif->hwaddr_len;
-    rt_memcpy(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
     
     
 #ifdef SAL_USING_LWIP
 #ifdef SAL_USING_LWIP
     extern int sal_lwip_netdev_set_pf_info(struct netdev *netdev);
     extern int sal_lwip_netdev_set_pf_info(struct netdev *netdev);
@@ -317,6 +312,16 @@ static int netdev_add(struct netif *lwip_netif)
 
 
     rt_strncpy(name, lwip_netif->name, LWIP_NETIF_NAME_LEN);
     rt_strncpy(name, lwip_netif->name, LWIP_NETIF_NAME_LEN);
     result = netdev_register(netdev, name, (void *)lwip_netif);
     result = netdev_register(netdev, name, (void *)lwip_netif);
+	
+    /* Update netdev info after registered */
+    netdev->flags = lwip_netif->flags;
+    netdev->mtu = lwip_netif->mtu;
+    netdev->ops = &lwip_netdev_ops;
+    netdev->hwaddr_len =  lwip_netif->hwaddr_len;
+    rt_memcpy(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
+    netdev->ip_addr = lwip_netif->ip_addr;
+    netdev->gw = lwip_netif->gw;
+    netdev->netmask = lwip_netif->netmask;
 
 
 #ifdef RT_LWIP_DHCP
 #ifdef RT_LWIP_DHCP
     netdev_low_level_set_dhcp_status(netdev, RT_TRUE);
     netdev_low_level_set_dhcp_status(netdev, RT_TRUE);