mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-08 00:43:06 +00:00
fix: addPeer could unintentionally override metadata of previously stored peer with defaults and empty (#3403)
* fix: addPeer could unintentionally override metadata of previously stored peer with defaults and empty * Add explanation why we discard updates of different peerStore books. Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com> --------- Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com>
This commit is contained in:
parent
42ab866f2c
commit
094a68e41d
@ -100,16 +100,23 @@ proc addPeer*(peerStore: PeerStore, peer: RemotePeerInfo, origin = UnknownOrigin
|
|||||||
protos.add($new_proto)
|
protos.add($new_proto)
|
||||||
peerStore[ProtoBook][peer.peerId] = protos
|
peerStore[ProtoBook][peer.peerId] = protos
|
||||||
|
|
||||||
peerStore[AgentBook][peer.peerId] = peer.agent
|
## We don't care whether the item was already present in the table or not. Hence, we always discard the hasKeyOrPut's bool returned value
|
||||||
peerStore[ProtoVersionBook][peer.peerId] = peer.protoVersion
|
discard peerStore[AgentBook].book.hasKeyOrPut(peer.peerId, peer.agent)
|
||||||
peerStore[KeyBook][peer.peerId] = peer.publicKey
|
discard peerStore[ProtoVersionBook].book.hasKeyOrPut(peer.peerId, peer.protoVersion)
|
||||||
peerStore[ConnectionBook][peer.peerId] = peer.connectedness
|
discard peerStore[KeyBook].book.hasKeyOrPut(peer.peerId, peer.publicKey)
|
||||||
peerStore[DisconnectBook][peer.peerId] = peer.disconnectTime
|
|
||||||
peerStore[SourceBook][peer.peerId] =
|
discard peerStore[ConnectionBook].book.hasKeyOrPut(peer.peerId, peer.connectedness)
|
||||||
if origin != UnknownOrigin: origin else: peer.origin
|
discard peerStore[DisconnectBook].book.hasKeyOrPut(peer.peerId, peer.disconnectTime)
|
||||||
peerStore[DirectionBook][peer.peerId] = peer.direction
|
if origin != UnknownOrigin:
|
||||||
peerStore[LastFailedConnBook][peer.peerId] = peer.lastFailedConn
|
peerStore[SourceBook][peer.peerId] = origin
|
||||||
peerStore[NumberFailedConnBook][peer.peerId] = peer.numberFailedConn
|
else:
|
||||||
|
discard peerStore[SourceBook].book.hasKeyOrPut(peer.peerId, peer.origin)
|
||||||
|
|
||||||
|
discard peerStore[DirectionBook].book.hasKeyOrPut(peer.peerId, peer.direction)
|
||||||
|
discard
|
||||||
|
peerStore[LastFailedConnBook].book.hasKeyOrPut(peer.peerId, peer.lastFailedConn)
|
||||||
|
discard
|
||||||
|
peerStore[NumberFailedConnBook].book.hasKeyOrPut(peer.peerId, peer.numberFailedConn)
|
||||||
if peer.enr.isSome():
|
if peer.enr.isSome():
|
||||||
peerStore[ENRBook][peer.peerId] = peer.enr.get()
|
peerStore[ENRBook][peer.peerId] = peer.enr.get()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user