overwrite old_addr with new_addrs in consume_peer_record

This commit is contained in:
lla-dane
2025-07-25 23:22:10 +05:30
parent 64bc388b33
commit 16445714f7
2 changed files with 3 additions and 12 deletions

View File

@ -253,20 +253,11 @@ class PeerStore(IPeerStore):
if existing and existing.seq > record.seq:
return False # reject older record
# Merge new addresses with existing ones if peer exists
if peer_id in self.peer_data_map:
try:
existing_addrs = set(self.addrs(peer_id))
except PeerStoreError:
existing_addrs = set()
else:
existing_addrs = set()
new_addrs = set(record.addrs)
merged_addrs = list(existing_addrs.union(new_addrs))
self.peer_record_map[peer_id] = PeerRecordState(envelope, record.seq)
self.add_addrs(peer_id, merged_addrs, ttl)
self.peer_data_map[peer_id].clear_addrs()
self.add_addrs(peer_id, list(new_addrs), ttl)
return True

View File

@ -134,6 +134,6 @@ def test_ceritified_addr_book():
assert latest.record().seq == 23
# Merged addresses = old addres + new_addrs
expected_addrs = set(addrs).union(set(new_addrs))
expected_addrs = set(new_addrs)
actual_addrs = set(store.addrs(peer_id))
assert actual_addrs == expected_addrs