net/dev: check the available address further

check the available address further to avoid obtain unusable device

Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
chao.an 2021-01-20 15:50:33 +08:00 committed by Xiang Xiao
parent bbdec3c4f4
commit a988437e90
1 changed files with 4 additions and 2 deletions

View File

@ -73,7 +73,8 @@ FAR struct net_driver_s *netdev_findby_lipv4addr(in_addr_t lipaddr)
{
/* Is the interface in the "up" state? */
if ((dev->d_flags & IFF_UP) != 0)
if ((dev->d_flags & IFF_UP) != 0 &&
!net_ipv4addr_cmp(dev->d_ipaddr, INADDR_ANY))
{
/* Yes.. check for an address match (under the netmask) */
@ -125,7 +126,8 @@ FAR struct net_driver_s *netdev_findby_lipv6addr(
{
/* Is the interface in the "up" state? */
if ((dev->d_flags & IFF_UP) != 0)
if ((dev->d_flags & IFF_UP) != 0 &&
!net_ipv6addr_cmp(dev->d_ipv6addr, g_ipv6_unspecaddr))
{
/* Yes.. check for an address match (under the netmask) */