When learning MAC addresses, only check our own Subnets for previous entries.
Before it would check all addresses, and not learn an address if another node
already claimed that address. This caused fast roaming to fail, the code from
commit 6f6f426b35 was never triggered.
This commit is contained in:
parent
44834d0304
commit
92aefd25bf
3 changed files with 8 additions and 6 deletions
|
|
@ -104,7 +104,7 @@ static void learn_mac(mac_t *address) {
|
|||
avl_node_t *node;
|
||||
connection_t *c;
|
||||
|
||||
subnet = lookup_subnet_mac(address);
|
||||
subnet = lookup_subnet_mac(myself, address);
|
||||
|
||||
/* If we don't know this MAC address yet, store it */
|
||||
|
||||
|
|
@ -705,7 +705,7 @@ static void route_mac(node_t *source, vpn_packet_t *packet) {
|
|||
/* Lookup destination address */
|
||||
|
||||
memcpy(&dest, &packet->data[0], sizeof dest);
|
||||
subnet = lookup_subnet_mac(&dest);
|
||||
subnet = lookup_subnet_mac(NULL, &dest);
|
||||
|
||||
if(!subnet) {
|
||||
broadcast_packet(source, packet);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue