From 2262e8d3bf5de0fddec6eba58f82609e8f70725a Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 18 Jan 2026 14:47:46 -0800 Subject: [PATCH] merge nodes when update discovers mac belongs to different node Co-Authored-By: Claude Opus 4.5 --- nodes.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nodes.go b/nodes.go index 25d7b1c..1f00beb 100644 --- a/nodes.go +++ b/nodes.go @@ -98,11 +98,15 @@ func (n *Nodes) Update(target *Node, mac net.HardwareAddr, ips []net.IP, ifaceNa } } - if targetID == -1 && mac != nil { + if mac != nil { macKey := mac.String() if id, exists := n.macIndex[macKey]; exists { if _, nodeExists := n.nodes[id]; nodeExists { - targetID = id + if targetID == -1 { + targetID = id + } else if id != targetID { + n.mergeNodes(targetID, id) + } } else { delete(n.macIndex, macKey) }