Index: sys/net/debugnet_inet.c =================================================================== --- sys/net/debugnet_inet.c +++ sys/net/debugnet_inet.c @@ -347,13 +347,19 @@ " server or gateway)\n", buf); return; } + if (pcb->dp_state >= DN_STATE_HAVE_GW_MAC) { + inet_ntoa_r(isaddr, buf); + DNETDEBUG("ignoring server ARP reply from %s (already" + " have gateway address)\n", buf); + return; + } + MPASS(pcb->dp_state == DN_STATE_INIT); memcpy(pcb->dp_gw_mac.octet, ar_sha(ah), min(ah->ar_hln, ETHER_ADDR_LEN)); DNETDEBUG("got server MAC address %6D\n", pcb->dp_gw_mac.octet, ":"); - MPASS(pcb->dp_state == DN_STATE_INIT); pcb->dp_state = DN_STATE_HAVE_GW_MAC; return; }