summaryrefslogtreecommitdiff
path: root/components/net/netdev/src
diff options
context:
space:
mode:
authorWayne Lin <[email protected]>2021-05-12 18:39:35 +0800
committerWayne Lin <[email protected]>2021-05-12 18:39:35 +0800
commitf068908728afbcf2ab69b5949c286891150f3aca (patch)
treead931747ed4df603de13176697daf6cdfbbd2e98 /components/net/netdev/src
parent0e9054f7952d5e521268df3919067f62f0e2724d (diff)
parent1c823b3fc07111e3ce46d09574ff9bcda87a4d7f (diff)
Merge branch 'master' of https://github.com/RT-Thread/rt-thread into nuvoton
Diffstat (limited to 'components/net/netdev/src')
-rw-r--r--components/net/netdev/src/netdev.c30
-rw-r--r--components/net/netdev/src/netdev_ipaddr.c2
2 files changed, 30 insertions, 2 deletions
diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c
index cef11847f9..f722909cc8 100644
--- a/components/net/netdev/src/netdev.c
+++ b/components/net/netdev/src/netdev.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2019, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -829,6 +829,34 @@ void netdev_low_level_set_link_status(struct netdev *netdev, rt_bool_t is_up)
}
/**
+ * This function will set network interface device active internet status.
+ * @NOTE it can only be called in the network interface device driver.
+ *
+ * @param netdev the network interface device to change
+ * @param is_up the new internet status
+ */
+void netdev_low_level_set_internet_status(struct netdev *netdev, rt_bool_t is_up)
+{
+ if (netdev && netdev_is_internet_up(netdev) != is_up)
+ {
+ if (is_up)
+ {
+ netdev->flags |= NETDEV_FLAG_INTERNET_UP;
+ }
+ else
+ {
+ netdev->flags &= ~NETDEV_FLAG_INTERNET_UP;
+ }
+
+ /* execute network interface device status change callback function */
+ if (netdev->status_callback)
+ {
+ netdev->status_callback(netdev, is_up ? NETDEV_CB_STATUS_INTERNET_UP : NETDEV_CB_STATUS_INTERNET_DOWN);
+ }
+ }
+}
+
+/**
* This function will set network interface device DHCP status.
* @NOTE it can only be called in the network interface device driver.
*
diff --git a/components/net/netdev/src/netdev_ipaddr.c b/components/net/netdev/src/netdev_ipaddr.c
index a70a90bb75..9abb41bd14 100644
--- a/components/net/netdev/src/netdev_ipaddr.c
+++ b/components/net/netdev/src/netdev_ipaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*