summaryrefslogtreecommitdiff
path: root/components/net/netdev/src
diff options
context:
space:
mode:
author192.168.1.134 <[email protected]>2021-12-09 19:18:24 +0800
committer192.168.1.134 <[email protected]>2021-12-09 19:18:24 +0800
commit6378f95f00fd51410d2715da55d728d4a40494de (patch)
treebb46a565875d538189e1c1dfc9b1cfddf6862a92 /components/net/netdev/src
parentd6b05287bbeaf9369546009e5af445f350b97fe9 (diff)
parent462f093cbd7531098de3b7aadb5f8d5f1b99b4a9 (diff)
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
Diffstat (limited to 'components/net/netdev/src')
-rw-r--r--components/net/netdev/src/netdev.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c
index 4c5d524510..f121f52c19 100644
--- a/components/net/netdev/src/netdev.c
+++ b/components/net/netdev/src/netdev.c
@@ -1052,7 +1052,7 @@ MSH_CMD_EXPORT_ALIAS(netdev_ifconfig, ifconfig, list the information of all netw
#endif /* NETDEV_USING_IFCONFIG */
#ifdef NETDEV_USING_PING
-int netdev_cmd_ping(char* target_name, rt_uint32_t times, rt_size_t size)
+int netdev_cmd_ping(char* target_name, char *netdev_name, rt_uint32_t times, rt_size_t size)
{
#define NETDEV_PING_DATA_SIZE 32
/** ping receive timeout - in milliseconds */
@@ -1073,6 +1073,16 @@ int netdev_cmd_ping(char* target_name, rt_uint32_t times, rt_size_t size)
size = NETDEV_PING_DATA_SIZE;
}
+ if (netdev_name != RT_NULL)
+ {
+ netdev = netdev_get_by_name(netdev_name);
+ if (netdev == RT_NULL)
+ {
+ netdev = netdev_default;
+ rt_kprintf("ping: not found specified netif, using default netdev %s.\n", netdev->name);
+ }
+ }
+
if (NETDEV_PING_IS_COMMONICABLE(netdev_default))
{
/* using default network interface device for ping */
@@ -1144,11 +1154,15 @@ int netdev_ping(int argc, char **argv)
{
if (argc == 1)
{
- rt_kprintf("Please input: ping <host address>\n");
+ rt_kprintf("Please input: ping [netdev name] <host address>\n");
}
- else
+ else if (argc == 2)
+ {
+ netdev_cmd_ping(argv[1], RT_NULL, 4, 0);
+ }
+ else if (argc == 3)
{
- netdev_cmd_ping(argv[1], 4, 0);
+ netdev_cmd_ping(argv[1], argv[2], 4, 0);
}
return 0;