summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2015-05-09 10:05:35 +0800
committerBernard Xiong <[email protected]>2015-05-09 10:05:35 +0800
commit9fa2a04a64b6ae69b8fdcd0a2172262a28e0121d (patch)
treea571520693720db6851b54b93e67d25dee33a78d
parent7e4e093d7b848a16d83c7bb533d46c759a619326 (diff)
parente9c489d02bfaf2b8ea1b36ac1cc3bd8fa6f92605 (diff)
Merge pull request #471 from hduffddybz/master
The problem of finding ethernet interface
-rw-r--r--components/net/lwip_dhcpd/dhcp_server.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/components/net/lwip_dhcpd/dhcp_server.c b/components/net/lwip_dhcpd/dhcp_server.c
index 47547a598b..cb3fc0f464 100644
--- a/components/net/lwip_dhcpd/dhcp_server.c
+++ b/components/net/lwip_dhcpd/dhcp_server.c
@@ -376,13 +376,24 @@ static void dhcpd_thread_entry(void *parameter)
void dhcpd_start(char* netif_name)
{
rt_thread_t thread;
- struct netif *netif = RT_NULL;
+ struct netif *netif = netif_list;
- /* find ethernet interface. */
- netif = netif_find(netif_name);
- if (netif == RT_NULL)
+ if(strlen(netif_name) > sizeof(netif->name))
+ {
+ rt_kprintf("network interface name too long!\r\n");
+ return;
+ }
+ while(netif != RT_NULL)
{
- DEBUG_PRINTF("Not found network interface:%s\n", netif_name);
+ if(strncmp(netif_name, netif->name, sizeof(netif->name)) == 0)
+ break;
+
+ netif = netif->next;
+ if( netif == RT_NULL )
+ {
+ rt_kprintf("network interface: %s not found!\r\n", netif_name);
+ return;
+ }
}
thread = rt_thread_create("dhcpd",