Răsfoiți Sursa

modify ifconfig function according to the suggestion

宋超 4 ani în urmă
părinte
comite
1d3414e1bb

+ 9 - 0
components/net/lwip-2.1.2/src/netif/ethernetif.c

@@ -162,6 +162,15 @@ static int lwip_netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, ip
 #ifdef RT_LWIP_DHCP
 static int lwip_netdev_set_dhcp(struct netdev *netdev, rt_bool_t is_enabled)
 {
+    if(RT_TRUE == is_enabled)
+    {
+        dhcp_start((struct netif *)netdev->user_data);
+    }
+    else
+    {
+        dhcp_stop((struct netif *)netdev->user_data);
+    }
+
     netdev_low_level_set_dhcp_status(netdev, is_enabled);
     return ERR_OK;
 }

+ 2 - 20
components/net/netdev/src/netdev.c

@@ -960,29 +960,16 @@ static void netdev_list_if(void)
 }
 
 #ifdef RT_LWIP_DHCP
-struct netif;
-void dhcp_stop(struct netif *netif);
-int dhcp_start(struct netif *netif);
 int netdev_dhcp_open(char* netdev_name)
 {
     struct netdev *netdev = RT_NULL;
-    int ret;
     netdev = netdev_get_by_name(netdev_name);
     if (netdev == RT_NULL)
     {
         rt_kprintf("bad network interface device name(%s).\n", netdev_name);
         return -1;
     }    
-    if (!netdev_is_dhcp_enabled(netdev))
-    {
-        ret = dhcp_start(netdev->user_data);
-        if(ret != 0)
-        {
-            LOG_E("dhcp start failed\n");
-        }
-        netdev_low_level_set_dhcp_status(netdev, RT_TRUE);
-    }
-
+    netdev_dhcp_enabled(netdev,RT_TRUE);
     return 0;
 }
 
@@ -996,12 +983,7 @@ int netdev_dhcp_close(char* netdev_name)
         rt_kprintf("bad network interface device name(%s).\n", netdev_name);
         return -1;
     }
-    if (netdev_is_dhcp_enabled(netdev))
-    {
-        dhcp_stop(netdev->user_data);    
-        netdev_low_level_set_dhcp_status(netdev, RT_FALSE);
-    }
-    
+    netdev_dhcp_enabled(netdev,RT_FALSE);
     return 0;
 }
 #endif