net/dev: check the available address further

check the available address further to avoid obtain unusable device

Change-Id: Icdd91cf0c4cb158f00a49f74d054425c2aeacd14
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 chao an
parent 68855c212f
commit 1cd39d813f
+4 -2
View File
@@ -89,7 +89,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) */
@@ -140,7 +141,8 @@ FAR struct net_driver_s *netdev_findby_lipv6addr(const net_ipv6addr_t lipaddr)
{
/* 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) */