diff options
Diffstat (limited to 'components/net/netdev/src/netdev.c')
| -rw-r--r-- | components/net/netdev/src/netdev.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index 4dde5f2f9c..c5b4d0e321 100644 --- a/components/net/netdev/src/netdev.c +++ b/components/net/netdev/src/netdev.c @@ -9,6 +9,7 @@ */ #include <stdio.h> +#include <string.h> #include <rtthread.h> #include <rthw.h> @@ -510,7 +511,7 @@ int netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, const ip_addr_ } /* execute network interface device set DNS server address operations */ - return netdev->ops->set_dns_server(netdev, (ip_addr_t *)dns_server); + return netdev->ops->set_dns_server(netdev, dns_num, (ip_addr_t *)dns_server); } /** @@ -1028,7 +1029,7 @@ static void netdev_list_dns(void) rt_hw_interrupt_enable(level); } -static void netdev_set_dns(char *netdev_name, char *dns_server) +static void netdev_set_dns(char *netdev_name, uint8_t dns_num, char *dns_server) { struct netdev *netdev = RT_NULL; ip_addr_t dns_addr; @@ -1041,7 +1042,7 @@ static void netdev_set_dns(char *netdev_name, char *dns_server) } inet_aton(dns_server, &dns_addr); - netdev_set_dns_server(netdev, 0, &dns_addr); + netdev_set_dns_server(netdev, dns_num, &dns_addr); rt_kprintf("set network interface device(%s) dns server #0: %s\n", netdev_name, dns_server); } @@ -1054,11 +1055,16 @@ int netdev_dns(int argc, char **argv) } else if (argc == 3) { - netdev_set_dns(argv[1], argv[2]); + netdev_set_dns(argv[1], 0, argv[2]); + } + else if (argc == 4) + { + netdev_set_dns(argv[1], atoi(argv[2]), argv[3]); } else { - rt_kprintf("bad parameter! e.g: dns name 114.114.114.114\n"); + rt_kprintf("bad parameter! input: dns <netdev_name> [dns_num] <dns_server>\n"); + return -1; } return 0; |
