Skip to content
This repository was archived by the owner on Jun 20, 2024. It is now read-only.

Commit c0c19fc

Browse files
committed
MacCache.AddForced needs to return conflicting peer
otherwise NetworkRouter.handleForwardedPacket fails to clear out the now invalid flows.
1 parent e642f36 commit c0c19fc

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

router/mac_cache.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,21 @@ func (cache *MacCache) add(mac net.HardwareAddr, peer *mesh.Peer, force bool) (b
5151
return true, nil
5252
}
5353

54+
var conflictPeer *mesh.Peer
55+
5456
if entry.peer != peer {
57+
conflictPeer = entry.peer
5558
if !force {
56-
return false, entry.peer
59+
return false, conflictPeer
5760
}
58-
5961
entry.peer = peer
6062
}
6163

6264
if now.After(entry.lastSeen.Add(cache.maxAge / 10)) {
6365
entry.lastSeen = now
6466
}
6567

66-
return false, nil
68+
return false, conflictPeer
6769
}
6870

6971
func (cache *MacCache) Add(mac net.HardwareAddr, peer *mesh.Peer) (bool, *mesh.Peer) {

0 commit comments

Comments
 (0)