fix(ble): Bypass MAC sorting after MAC rotation cleanup
After detecting MAC rotation and cleaning up the stale interface, immediately add the peer to scored_peers and continue, bypassing the MAC sorting check. This ensures reconnection always happens after MAC rotation regardless of which device has the higher MAC. Bug: After MAC rotation, peer interface wasn't recreated because the code fell through to MAC sorting check which could skip the peer if local MAC > peer MAC. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
64a4e2e43b
commit
564b2be07e
1 changed files with 5 additions and 1 deletions
|
|
@ -1282,7 +1282,11 @@ class BLEInterface(Interface):
|
|||
RNS.log(f"{self} [v2.2] MAC rotation: {identity_hash[:8]} moved from {existing_address[-8:]} to {address[-8:]}, cleaning up stale interface",
|
||||
RNS.LOG_INFO)
|
||||
self._cleanup_stale_interface(identity_hash, existing_address)
|
||||
# Fall through to connect to new MAC
|
||||
# Bypass MAC sorting - we must reconnect after MAC rotation
|
||||
# regardless of which device has the higher MAC address
|
||||
score = self._score_peer(peer)
|
||||
scored_peers.append((score, peer))
|
||||
continue # Skip remaining checks, peer already added
|
||||
elif existing_address == address:
|
||||
# Same address, interface exists - skip
|
||||
RNS.log(f"{self} [v2.2] skipping {peer.name} - interface exists for identity {identity_hash[:8]}",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue