From 865e34650c8c631151412672d5177eafca368c2b Mon Sep 17 00:00:00 2001 From: liuxianliang Date: Mon, 12 Apr 2021 18:11:37 +0800 Subject: [add] the function of set [internet up] status, activate the callback. --- components/net/netdev/src/netdev.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'components/net/netdev/src') diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index 3f7aa401c1..f722909cc8 100644 --- a/components/net/netdev/src/netdev.c +++ b/components/net/netdev/src/netdev.c @@ -828,6 +828,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. -- cgit v1.3.1