diff --git a/src/core/ipv4/icmp.c b/src/core/ipv4/icmp.c index b7228538..9202bb65 100644 --- a/src/core/ipv4/icmp.c +++ b/src/core/ipv4/icmp.c @@ -360,7 +360,15 @@ icmp_send_response(struct pbuf *p, u8_t type, u8_t code) IP_HLEN + ICMP_DEST_UNREACH_DATASIZE); ip4_addr_copy(iphdr_src, iphdr->src); +#ifdef LWIP_HOOK_IP4_ROUTE_SRC + { + ip4_addr_t iphdr_dst; + ip4_addr_copy(iphdr_dst, iphdr->dest); + netif = ip4_route_src(&iphdr_src, &iphdr_dst); + } +#else netif = ip4_route(&iphdr_src); +#endif if (netif != NULL) { /* calculate checksum */ icmphdr->chksum = 0;