mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-12-26 12:13:47 +00:00
bug #54700: Unexpected expiry of pending ARP table entry
New etharp queries should restart the 5 second timeout on the ARP
table entry if it is still pending.
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
(cherry picked from commit ffbe075d56
)
This commit is contained in:
parent
4022a19cbc
commit
214e2d90f3
@ -983,6 +983,14 @@ etharp_query(struct netif *netif, const ip4_addr_t *ipaddr, struct pbuf *q)
|
|||||||
/* We don't re-send arp request in etharp_tmr, but we still queue packets,
|
/* We don't re-send arp request in etharp_tmr, but we still queue packets,
|
||||||
since this failure could be temporary, and the next packet calling
|
since this failure could be temporary, and the next packet calling
|
||||||
etharp_query again could lead to sending the queued packets. */
|
etharp_query again could lead to sending the queued packets. */
|
||||||
|
} else {
|
||||||
|
/* ARP request successfully sent */
|
||||||
|
if ((arp_table[i].state == ETHARP_STATE_PENDING) && !is_new_entry) {
|
||||||
|
/* A new ARP request has been sent for a pending entry. Reset the ctime to
|
||||||
|
not let it expire too fast. */
|
||||||
|
LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: reset ctime for entry %"S16_F"\n", (s16_t)i));
|
||||||
|
arp_table[i].ctime = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (q == NULL) {
|
if (q == NULL) {
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
Reference in New Issue
Block a user