diff options
| author | Bernard Xiong <[email protected]> | 2020-12-31 14:54:16 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-12-31 14:54:16 +0800 |
| commit | a6343273b83a993ac066aeebdca6020833475f94 (patch) | |
| tree | fb2849a77ff017ae650ee9c5296b61bdb9cde88b | |
| parent | a174881e0b2852721818ee4fef7e5e5ca4d8e209 (diff) | |
| parent | 14ac354dcaa1bc0fbc8e9484c6bf839931111bde (diff) | |
Merge pull request #4212 from xiangxistu/master
[add] a new function to manage internet check.
| -rw-r--r-- | components/net/Kconfig | 6 | ||||
| -rw-r--r-- | components/net/netdev/src/netdev.c | 6 | ||||
| -rw-r--r-- | components/net/sal_socket/src/sal_socket.c | 16 |
3 files changed, 21 insertions, 7 deletions
diff --git a/components/net/Kconfig b/components/net/Kconfig index 3a4f39ed49..e1c34f754e 100644 --- a/components/net/Kconfig +++ b/components/net/Kconfig @@ -10,6 +10,12 @@ config RT_USING_SAL if RT_USING_SAL + config SAL_INTERNET_CHECK + bool "Enable the ability that check internet status" + default y + help + The ability that check internet status is provided by RT-Thread. + if RT_USING_LWIP || AT_USING_SOCKET menu "protocol stack implement" diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index 92d5b188eb..76a937cc75 100644 --- a/components/net/netdev/src/netdev.c +++ b/components/net/netdev/src/netdev.c @@ -901,8 +901,8 @@ static void netdev_list_if(void) { rt_kprintf("%d", netdev->hwaddr[index]); } - - + + } } @@ -911,8 +911,10 @@ static void netdev_list_if(void) else rt_kprintf(" DOWN"); if (netdev->flags & NETDEV_FLAG_LINK_UP) rt_kprintf(" LINK_UP"); else rt_kprintf(" LINK_DOWN"); +#ifdef SAL_INTERNET_CHECK if (netdev->flags & NETDEV_FLAG_INTERNET_UP) rt_kprintf(" INTERNET_UP"); else rt_kprintf(" INTERNET_DOWN"); +#endif if (netdev->flags & NETDEV_FLAG_DHCP) rt_kprintf(" DHCP_ENABLE"); else rt_kprintf(" DHCP_DISABLE"); if (netdev->flags & NETDEV_FLAG_ETHARP) rt_kprintf(" ETHARP"); diff --git a/components/net/sal_socket/src/sal_socket.c b/components/net/sal_socket/src/sal_socket.c index c3e1c15749..27dea260fb 100644 --- a/components/net/sal_socket/src/sal_socket.c +++ b/components/net/sal_socket/src/sal_socket.c @@ -21,7 +21,9 @@ #include <sal.h> #include <netdev.h> +#ifdef SAL_INTERNET_CHECK #include <ipc/workqueue.h> +#endif /* check system workqueue stack size */ #if RT_SYSTEM_WORKQUEUE_STACKSIZE < 1536 @@ -45,7 +47,7 @@ struct sal_socket_table struct sal_netdev_res_table { struct addrinfo *res; - struct netdev *netdev; + struct netdev *netdev; }; #ifdef SAL_USING_TLS @@ -131,7 +133,7 @@ int sal_init(void) /*init the dev_res table */ rt_memset(sal_dev_res_tbl, 0, sizeof(sal_dev_res_tbl)); - + /* create sal socket lock */ rt_mutex_init(&sal_core_lock, "sal_lock", RT_IPC_FLAG_FIFO); @@ -142,6 +144,7 @@ int sal_init(void) } INIT_COMPONENT_EXPORT(sal_init); +#ifdef SAL_INTERNET_CHECK /* check SAL network interface device internet status */ static void check_netdev_internet_up_work(struct rt_work *work, void *work_data) { @@ -271,6 +274,7 @@ __exit: skt_ops->closesocket(sockfd); } } +#endif /* SAL_INTERNET_CHECK */ /** * This function will check SAL network interface device internet status. @@ -279,10 +283,12 @@ __exit: */ int sal_check_netdev_internet_up(struct netdev *netdev) { + RT_ASSERT(netdev); + +#ifdef SAL_INTERNET_CHECK /* workqueue for network connect */ struct rt_delayed_work *net_work = RT_NULL; - RT_ASSERT(netdev); net_work = (struct rt_delayed_work *)rt_calloc(1, sizeof(struct rt_delayed_work)); if (net_work == RT_NULL) @@ -293,7 +299,7 @@ int sal_check_netdev_internet_up(struct netdev *netdev) rt_delayed_work_init(net_work, check_netdev_internet_up_work, (void *)netdev); rt_work_submit(&(net_work->work), RT_TICK_PER_SECOND); - +#endif /* SAL_INTERNET_CHECK */ return 0; } @@ -1138,7 +1144,7 @@ int sal_getaddrinfo(const char *nodename, } RT_ASSERT((i < SAL_SOCKETS_NUM)); - + } return ret; |
