diff options
| author | Bernard Xiong <[email protected]> | 2015-05-09 10:05:35 +0800 |
|---|---|---|
| committer | Bernard Xiong <[email protected]> | 2015-05-09 10:05:35 +0800 |
| commit | 9fa2a04a64b6ae69b8fdcd0a2172262a28e0121d (patch) | |
| tree | a571520693720db6851b54b93e67d25dee33a78d /components/net | |
| parent | 7e4e093d7b848a16d83c7bb533d46c759a619326 (diff) | |
| parent | e9c489d02bfaf2b8ea1b36ac1cc3bd8fa6f92605 (diff) | |
Merge pull request #471 from hduffddybz/master
The problem of finding ethernet interface
Diffstat (limited to 'components/net')
| -rw-r--r-- | components/net/lwip_dhcpd/dhcp_server.c | 21 |
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", |
