diff options
-rw-r--r-- | sys/netinet/if_ether.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 61265d4..8ee7132 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -496,11 +496,12 @@ arpresolve(struct ifnet *ifp, struct rtentry *rt0, struct mbuf *m, else error = (rt == rt0) ? EHOSTDOWN : EHOSTUNREACH; - if (la->la_asked++ == 0 || rt->rt_expire != time_uptime) { + if (la->la_asked == 0 || rt->rt_expire != time_uptime) { struct in_addr sin = SIN(rt->rt_ifa->ifa_addr)->sin_addr; rt->rt_expire = time_uptime; + la->la_asked++; RT_UNLOCK(rt); arprequest(ifp, &sin, &SIN(dst)->sin_addr, |