From 1f9a668607be01db25695bdfa34f90905de3e4c3 Mon Sep 17 00:00:00 2001 From: chenyong <1521761801@qq.com> Date: Tue, 28 May 2019 11:03:36 +0800 Subject: [net][at] Fix socket create failed issue when default netdev mismatch. Signed-off-by: chenyong <1521761801@qq.com> --- components/net/netdev/include/netdev.h | 1 + components/net/netdev/src/netdev.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) (limited to 'components/net/netdev') diff --git a/components/net/netdev/include/netdev.h b/components/net/netdev/include/netdev.h index e9d8e38658..0be2a2bda3 100644 --- a/components/net/netdev/include/netdev.h +++ b/components/net/netdev/include/netdev.h @@ -138,6 +138,7 @@ struct netdev *netdev_get_by_ipaddr(ip_addr_t *ip_addr); struct netdev *netdev_get_by_name(const char *name); #ifdef RT_USING_SAL struct netdev *netdev_get_by_family(int family); +int netdev_family_get(struct netdev *netdev); #endif /* RT_USING_SAL */ /* Set default network interface device in list */ diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index 71b1ec7ccd..5f49a46f17 100644 --- a/components/net/netdev/src/netdev.c +++ b/components/net/netdev/src/netdev.c @@ -294,6 +294,20 @@ struct netdev *netdev_get_by_family(int family) return RT_NULL; } +/** + * This function will get the family type from network interface device + * + * @param netdev network interface device object + * + * @return the network interface device family type + */ +int netdev_family_get(struct netdev *netdev) +{ + RT_ASSERT(netdev); + + return ((struct sal_proto_family *)netdev->sal_user_data)->family; +} + #endif /* RT_USING_SAL */ /** -- cgit v1.3.1