lwip:esp_netif: Send Periodic Gratuitous ARP only on valid IPv4

It was possible that the device would send a Gratuitous ARP before
acquiring a valid address, advertising it has 0.0.0.0 address.
This commit is contained in:
David Cermak 2023-03-17 09:18:38 +01:00
parent 2048d1e0c0
commit 98777343bd

View File

@ -174,7 +174,9 @@ static void dns_clear_servers(bool keep_fallback)
static void netif_send_garp(void *arg) static void netif_send_garp(void *arg)
{ {
struct netif *netif = arg; struct netif *netif = arg;
etharp_gratuitous(netif); if (!ip4_addr_cmp(netif_ip4_addr(netif), IP4_ADDR_ANY4)) { // Send GARP requests only if we have a valid IP
etharp_gratuitous(netif);
}
sys_timeout(CONFIG_LWIP_GARP_TMR_INTERVAL*1000, netif_send_garp, netif); sys_timeout(CONFIG_LWIP_GARP_TMR_INTERVAL*1000, netif_send_garp, netif);
} }