mirror of
https://github.com/logos-storage/logos-storage-nim-dht.git
synced 2026-05-21 17:19:27 +00:00
Fix minor issues
This commit is contained in:
parent
1a35212eee
commit
a26638bc9e
@ -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")
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user