[components][net][lwip][port] Fix next-hop finding in lwip_ip4_route_src. (#7504)

Co-authored-by: Wayne Lin <wclin@nuvoton.com>
This commit is contained in:
Wayne 2023-05-17 09:54:47 +08:00 committed by GitHub
parent 3b913914c2
commit a2b7a44070
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 8 deletions

View File

@ -675,24 +675,24 @@ struct netif *lwip_ip4_route_src(const ip4_addr_t *dest, const ip4_addr_t *src)
{
struct netif *netif;
if (src == NULL)
return NULL;
/* iterate through netifs */
for (netif = netif_list; netif != NULL; netif = netif->next)
{
/* is the netif up, does it have a link and a valid address? */
if (netif_is_up(netif) && netif_is_link_up(netif) && !ip4_addr_isany_val(*netif_ip4_addr(netif)))
{
/* gateway matches on a non broadcast interface? (i.e. peer in a point to point interface) */
if (src != NULL)
/* source ip address equals netif's ip address? */
if (ip4_addr_cmp(src, netif_ip4_addr(netif)))
{
if (ip4_addr_cmp(src, netif_ip4_addr(netif)))
{
return netif;
}
return netif;
}
}
}
netif = netif_default;
return netif;
return NULL;
}
#endif /* LWIP_HOOK_IP4_ROUTE_SRC */
#endif /*LWIP_VERSION_MAJOR >= 2 */