summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2020-12-31 14:54:16 +0800
committerGitHub <[email protected]>2020-12-31 14:54:16 +0800
commita6343273b83a993ac066aeebdca6020833475f94 (patch)
treefb2849a77ff017ae650ee9c5296b61bdb9cde88b
parenta174881e0b2852721818ee4fef7e5e5ca4d8e209 (diff)
parent14ac354dcaa1bc0fbc8e9484c6bf839931111bde (diff)
Merge pull request #4212 from xiangxistu/master
[add] a new function to manage internet check.
-rw-r--r--components/net/Kconfig6
-rw-r--r--components/net/netdev/src/netdev.c6
-rw-r--r--components/net/sal_socket/src/sal_socket.c16
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;