From 2e1427a2390c2ef3b699f54c0c9a34a870998c84 Mon Sep 17 00:00:00 2001 From: Liu Zhi Fu Date: Thu, 12 Jul 2018 16:49:22 +0800 Subject: [PATCH] lwip: add source ip based route for unicast packet Add source IP based route for unicast packets forwarding. --- components/lwip/core/ipv4/ip4.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/components/lwip/core/ipv4/ip4.c b/components/lwip/core/ipv4/ip4.c index d2b9195a4..3b05faf2d 100644 --- a/components/lwip/core/ipv4/ip4.c +++ b/components/lwip/core/ipv4/ip4.c @@ -133,16 +133,14 @@ bool ip4_netif_exist(const ip4_addr_t *src, const ip4_addr_t *dest) return false; } /** - * Source based IPv4 routing hook function. This function works only - * when destination IP is broadcast IP. + * Source based IPv4 routing hook function. */ struct netif * ESP_IRAM_ATTR ip4_route_src_hook(const ip4_addr_t *dest, const ip4_addr_t *src) { struct netif *netif = NULL; - /* destination IP is broadcast IP? */ - if ((src != NULL) && (dest->addr == IPADDR_BROADCAST)) { + if ((src != NULL) && !ip4_addr_isany(src)) { /* 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? */