Restore compilation with -d:p2pdump
This commit is contained in:
parent
286d6e14da
commit
5868afe341
|
@ -107,6 +107,9 @@ const
|
||||||
template `$`*(peer: Peer): string = id(peer.info)
|
template `$`*(peer: Peer): string = id(peer.info)
|
||||||
chronicles.formatIt(Peer): $it
|
chronicles.formatIt(Peer): $it
|
||||||
|
|
||||||
|
template remote*(peer: Peer): untyped =
|
||||||
|
peer.info.peerId
|
||||||
|
|
||||||
# TODO: This exists only as a compatibility layer between the daemon
|
# TODO: This exists only as a compatibility layer between the daemon
|
||||||
# APIs and the native LibP2P ones. It won't be necessary once the
|
# APIs and the native LibP2P ones. It won't be necessary once the
|
||||||
# daemon is removed.
|
# daemon is removed.
|
||||||
|
@ -351,6 +354,7 @@ proc p2pProtocolBackendImpl*(p: P2PProtocol): Backend =
|
||||||
msgName = $msg.ident
|
msgName = $msg.ident
|
||||||
msgNameLit = newLit msgName
|
msgNameLit = newLit msgName
|
||||||
MsgRecName = msg.recName
|
MsgRecName = msg.recName
|
||||||
|
MsgStrongRecName = msg.strongRecName
|
||||||
codecNameLit = getRequestProtoName(msg.procDef)
|
codecNameLit = getRequestProtoName(msg.procDef)
|
||||||
|
|
||||||
if msg.procDef.body.kind != nnkEmpty and msg.kind == msgRequest:
|
if msg.procDef.body.kind != nnkEmpty and msg.kind == msgRequest:
|
||||||
|
@ -388,7 +392,7 @@ proc p2pProtocolBackendImpl*(p: P2PProtocol): Backend =
|
||||||
proc thunk(`streamVar`: `P2PStream`,
|
proc thunk(`streamVar`: `P2PStream`,
|
||||||
proto: string): Future[void] {.gcsafe.} =
|
proto: string): Future[void] {.gcsafe.} =
|
||||||
return handleIncomingStream(`networkVar`, `streamVar`,
|
return handleIncomingStream(`networkVar`, `streamVar`,
|
||||||
`MsgRecName`, `Format`)
|
`MsgStrongRecName`, `Format`)
|
||||||
|
|
||||||
mount `networkVar`.switch,
|
mount `networkVar`.switch,
|
||||||
LPProtocol(codec: `codecNameLit`, handler: thunk)
|
LPProtocol(codec: `codecNameLit`, handler: thunk)
|
||||||
|
|
|
@ -358,7 +358,7 @@ proc implementSendProcBody(sendProc: SendProc) =
|
||||||
|
|
||||||
proc handleIncomingStream(network: Eth2Node, stream: P2PStream,
|
proc handleIncomingStream(network: Eth2Node, stream: P2PStream,
|
||||||
MsgType, Format: distinct type) {.async, gcsafe.} =
|
MsgType, Format: distinct type) {.async, gcsafe.} =
|
||||||
mixin callUserHandler
|
mixin callUserHandler, RecType
|
||||||
const msgName = typetraits.name(MsgType)
|
const msgName = typetraits.name(MsgType)
|
||||||
|
|
||||||
## Uncomment this to enable tracing on all incoming requests
|
## Uncomment this to enable tracing on all incoming requests
|
||||||
|
@ -384,9 +384,10 @@ proc handleIncomingStream(network: Eth2Node, stream: P2PStream,
|
||||||
await sendErrorResponse(peer, stream, ServerError, readTimeoutErrorMsg)
|
await sendErrorResponse(peer, stream, ServerError, readTimeoutErrorMsg)
|
||||||
return
|
return
|
||||||
|
|
||||||
var msg: MsgType
|
type MsgRec = RecType(MsgType)
|
||||||
|
var msg: MsgRec
|
||||||
try:
|
try:
|
||||||
msg = decode(Format, msgBytes, MsgType)
|
msg = decode(Format, msgBytes, MsgRec)
|
||||||
except SerializationError as err:
|
except SerializationError as err:
|
||||||
await sendErrorResponse(peer, stream, err, msgName, msgBytes)
|
await sendErrorResponse(peer, stream, err, msgName, msgBytes)
|
||||||
return
|
return
|
||||||
|
@ -399,7 +400,7 @@ proc handleIncomingStream(network: Eth2Node, stream: P2PStream,
|
||||||
raise err
|
raise err
|
||||||
|
|
||||||
try:
|
try:
|
||||||
logReceivedMsg(peer, msg)
|
logReceivedMsg(peer, MsgType(msg))
|
||||||
await callUserHandler(peer, stream, msg)
|
await callUserHandler(peer, stream, msg)
|
||||||
except CatchableError as err:
|
except CatchableError as err:
|
||||||
await sendErrorResponse(peer, stream, ServerError, err.msg)
|
await sendErrorResponse(peer, stream, ServerError, err.msg)
|
||||||
|
|
|
@ -101,6 +101,10 @@ template openStream(node: Eth2Node, peer: Peer, protocolId: string): untyped =
|
||||||
|
|
||||||
proc init*(T: type Peer, network: Eth2Node, id: PeerID): Peer {.gcsafe.}
|
proc init*(T: type Peer, network: Eth2Node, id: PeerID): Peer {.gcsafe.}
|
||||||
|
|
||||||
|
template remote*(peer: Peer): untyped =
|
||||||
|
# TODO: Can we get a proper address here?
|
||||||
|
peer.id
|
||||||
|
|
||||||
proc getPeer*(node: Eth2Node, peerId: PeerID): Peer {.gcsafe.} =
|
proc getPeer*(node: Eth2Node, peerId: PeerID): Peer {.gcsafe.} =
|
||||||
result = node.peers.getOrDefault(peerId)
|
result = node.peers.getOrDefault(peerId)
|
||||||
if result == nil:
|
if result == nil:
|
||||||
|
@ -211,6 +215,7 @@ proc p2pProtocolBackendImpl*(p: P2PProtocol): Backend =
|
||||||
msgName = $msg.ident
|
msgName = $msg.ident
|
||||||
msgNameLit = newLit msgName
|
msgNameLit = newLit msgName
|
||||||
MsgRecName = msg.recName
|
MsgRecName = msg.recName
|
||||||
|
MsgStrongRecName = msg.strongRecName
|
||||||
|
|
||||||
if msg.procDef.body.kind != nnkEmpty and msg.kind == msgRequest:
|
if msg.procDef.body.kind != nnkEmpty and msg.kind == msgRequest:
|
||||||
# Request procs need an extra param - the stream where the response
|
# Request procs need an extra param - the stream where the response
|
||||||
|
@ -235,7 +240,7 @@ proc p2pProtocolBackendImpl*(p: P2PProtocol): Backend =
|
||||||
proc `thunkName`(`daemonVar`: `DaemonAPI`,
|
proc `thunkName`(`daemonVar`: `DaemonAPI`,
|
||||||
`streamVar`: `P2PStream`): Future[void] {.gcsafe.} =
|
`streamVar`: `P2PStream`): Future[void] {.gcsafe.} =
|
||||||
return handleIncomingStream(`Eth2Node`(`daemonVar`.userData), `streamVar`,
|
return handleIncomingStream(`Eth2Node`(`daemonVar`.userData), `streamVar`,
|
||||||
`MsgRecName`, `Format`)
|
`MsgStrongRecName`, `Format`)
|
||||||
else:
|
else:
|
||||||
thunkName = newNilLit()
|
thunkName = newNilLit()
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit b3b5854003ebb10b99efa451d4391ef050f5951e
|
Subproject commit 9c442bf65b52a4c857cc6e51efe901352e8b6ebf
|
|
@ -1 +1 @@
|
||||||
Subproject commit ab53e009b980f93283ada1f4e496e1785cfc5496
|
Subproject commit 6350b72b5eda69f7ccfa57a94fd420509dbf6f49
|
Loading…
Reference in New Issue