mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-05 16:10:55 +00:00
Now that the bridge also processes Ethernet frames as itself, two arp replies
will be sent if there is an address on the bridge. Exclude the bridge from the special arp handling. This has been tested with all combinations of addresses on the bridge and members. Pointed out by: Michal Mertl
This commit is contained in:
parent
6637e0f390
commit
235073f4c0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=155145
|
@ -631,7 +631,8 @@ in_arpinput(m)
|
|||
* XXX: This is really ugly!
|
||||
*/
|
||||
LIST_FOREACH(ia, INADDR_HASH(itaddr.s_addr), ia_hash) {
|
||||
if ((bridged || (ia->ia_ifp == ifp)) &&
|
||||
if (((bridged && ia->ia_ifp->if_type != IFT_BRIDGE) ||
|
||||
(ia->ia_ifp == ifp)) &&
|
||||
itaddr.s_addr == ia->ia_addr.sin_addr.s_addr)
|
||||
goto match;
|
||||
#ifdef DEV_CARP
|
||||
|
@ -644,7 +645,8 @@ in_arpinput(m)
|
|||
#endif
|
||||
}
|
||||
LIST_FOREACH(ia, INADDR_HASH(isaddr.s_addr), ia_hash)
|
||||
if ((bridged || (ia->ia_ifp == ifp)) &&
|
||||
if (((bridged && ia->ia_ifp->if_type != IFT_BRIDGE) ||
|
||||
(ia->ia_ifp == ifp)) &&
|
||||
isaddr.s_addr == ia->ia_addr.sin_addr.s_addr)
|
||||
goto match;
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue