From 21e035014965065162c1b5c6c6d20dc4d3833cdb Mon Sep 17 00:00:00 2001 From: jm-clius Date: Wed, 17 Mar 2021 10:12:47 +0000 Subject: [PATCH] deploy: f9e5a58ff6a0fdadfb9b29749c9f5b605dc6200d --- .update.timestamp | 2 +- waku/v1/protocol/waku_protocol.nim | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.update.timestamp b/.update.timestamp index 377fe2378..61c9b4eda 100644 --- a/.update.timestamp +++ b/.update.timestamp @@ -1 +1 @@ -1615971147 \ No newline at end of file +1615974546 \ No newline at end of file diff --git a/waku/v1/protocol/waku_protocol.nim b/waku/v1/protocol/waku_protocol.nim index f96beef7e..20e14ddfc 100644 --- a/waku/v1/protocol/waku_protocol.nim +++ b/waku/v1/protocol/waku_protocol.nim @@ -87,11 +87,14 @@ type P2PRequestHandler* = proc(peer: Peer, envelope: Envelope) {.gcsafe.} + EnvReceivedHandler* = proc(envelope: Envelope) {.gcsafe.} + WakuNetwork = ref object queue*: ref Queue filters*: Filters config*: WakuConfig p2pRequestHandler*: P2PRequestHandler + envReceivedHandler*: EnvReceivedHandler RateLimits* = object # TODO: uint or specifically uint32? @@ -321,6 +324,9 @@ p2pProtocol Waku(version = wakuVersion, if peer.networkState.queue[].add(msg): # notify filters of this message peer.networkState.filters.notify(msg) + # trigger handler on received envelope, if registered + if not peer.networkState.envReceivedHandler.isNil(): + peer.networkState.envReceivedHandler(envelope) nextID 22 @@ -645,6 +651,10 @@ proc registerP2PRequestHandler*(node: EthereumNode, customHandler: P2PRequestHandler) = node.protocolState(Waku).p2pRequestHandler = customHandler +proc registerEnvReceivedHandler*(node: EthereumNode, + customHandler: EnvReceivedHandler) = + node.protocolState(Waku).envReceivedHandler = customHandler + proc resetMessageQueue*(node: EthereumNode) = ## Full reset of the message queue. ##