- DPRINTF(2, "%s: sending ARP reply to "IP_FMT", "IP_FMT" is at ("MAC_FMT")\n",
- rif->ifname, IP_BUF(pkt.arp.arp_tpa),
- IP_BUF(pkt.arp.arp_spa), MAC_BUF(pkt.eth.ether_shost));
+ DPRINTF(2, "%s: sending ARP reply to "IP_FMT", "IP_FMT" is at ("MAC_FMT")\n",
+ rif->ifname, IP_BUF(pkt.arp.arp_tpa),
+ IP_BUF(pkt.arp.arp_spa), MAC_BUF(pkt.eth.ether_shost));
+ } else {
+ memset(pkt.eth.ether_dhost, 0xff, ETH_ALEN);
+ memset(pkt.arp.arp_tha, 0, ETH_ALEN);
+
+ DPRINTF(2, "%s: sending gratuitous ARP: "IP_FMT" is at ("MAC_FMT")\n",
+ rif->ifname, IP_BUF(pkt.arp.arp_tpa),
+ MAC_BUF(pkt.eth.ether_shost));
+ }