Process SPANS ARP requests even if source IP is 0.0.0.0 (or broadcast). This

can occur when talking to a Fore host which is using "bonded" interfaces.
This commit is contained in:
Mike Spengler 2000-01-15 20:34:55 +00:00
parent f95270bacb
commit 98e185d2a5

View File

@ -620,17 +620,11 @@ spansarp_input(clp, m)
/*
* Validate source addresses
* can't be from broadcast
* can't be from hardware broadcast
* can't be from me
*/
if (!spans_addr_cmp(&ahp->ah_sha, &spans_bcastaddr))
goto free;
#if (defined(BSD) && (BSD >= 199306))
if (in_broadcast(in_src, &inp->inf_nif->nif_if))
#else
if (in_broadcast(in_src))
#endif
goto free;
if (!spans_addr_cmp(&ahp->ah_sha, spp->sp_addr.address))
goto free;
if (in_src.s_addr == in_me.s_addr) {
@ -641,6 +635,17 @@ spansarp_input(clp, m)
goto chkop;
}
/*
* If source IP address is from unspecified or broadcast addresses,
* don't bother updating arp table, but answer possible requests
*/
#if (defined(BSD) && (BSD >= 199306))
if (in_broadcast(in_src, &inp->inf_nif->nif_if))
#else
if (in_broadcast(in_src))
#endif
goto chkop;
/*
* Update arp table with source address info
*/