Fix minor issues

This commit is contained in:
Arnaud 2026-05-06 18:31:19 +04:00
parent 1a35212eee
commit a26638bc9e
No known key found for this signature in database
GPG Key ID: A6C7C781817146FA
4 changed files with 8 additions and 9 deletions

View File

@ -361,7 +361,7 @@ proc decodeMessage*(body: openArray[byte]): DecodeResult[Message] =
if pb.getField(3, clientModeField).isErr:
return err("Invalid clientMode field")
message.clientMode = clientModeField != 0
message.clientMode = clientModeField == 1
case kind
of unused: return err("Invalid message type")

View File

@ -236,7 +236,8 @@ proc receive*(t: Transport, a: Address, packet: openArray[byte]) =
if packet.message.clientMode:
t.client.routingTable.removeNode(node)
else:
discard t.client.addNode(node)
if t.client.addNode(node):
trace "Added new node to routing table after handshake", node, tablesize=t.client.nodesDiscovered()
discard t.sendPending(node)
else:

View File

@ -790,7 +790,7 @@ suite "Discovery v5 Tests":
await node1.closeWait()
await node2.closeWait()
test "Node is removed from routing table when clientMode is enabled":
test "Node is not added to routing table when clientMode is enabled":
let
clientNode = initDiscoveryNode(rng, PrivateKey.example(rng), localAddress(20314))
serverNode = initDiscoveryNode(rng, PrivateKey.example(rng), localAddress(20315))
@ -809,14 +809,12 @@ suite "Discovery v5 Tests":
node1 = initDiscoveryNode(rng, PrivateKey.example(rng), localAddress(20318))
node2 = initDiscoveryNode(rng, PrivateKey.example(rng), localAddress(20319))
# Establish session: node1 is added to node2's routing table
discard await discv5_protocol.ping(node1, node2.localNode)
check node2.routingTable.len() == 1
# node1 switches to client mode
node1.clientMode = true
# Second ping uses the existing session (ordinary message, not handshake)
discard await discv5_protocol.ping(node1, node2.localNode)
check node2.routingTable.len() == 0
@ -824,12 +822,12 @@ suite "Discovery v5 Tests":
await node1.closeWait()
await node2.closeWait()
test "Node is removed from routing table when clientMode is enabled during validation":
test "Node is removed from routing table when clientMode is enabled during re-validation":
let
clientNode = initDiscoveryNode(rng, PrivateKey.example(rng), localAddress(20316))
serverNode = initDiscoveryNode(rng, PrivateKey.example(rng), localAddress(20317))
# Add client node directly to server routing table
# Add client node directly to routing table
check serverNode.addNode(clientNode.localNode)
check serverNode.routingTable.len() == 1

View File

@ -189,7 +189,7 @@ suite "Discovery v5.1 Protocol Message Encodings":
let
p = PingMessage(sprSeq: 1'u64)
reqId = RequestId(id: @[1.byte])
encoded = encodeMessage(p, reqId) # no clientMode field (legacy node)
encoded = encodeMessage(p, reqId)
decoded = decodeMessage(encoded)
check decoded.isOk()
check decoded.get().clientMode == false