From f51ec32f696f7d1286b8fa51423958a398adf0d5 Mon Sep 17 00:00:00 2001 From: aggstam Date: Mon, 22 Aug 2022 18:41:45 +0300 Subject: [PATCH] fud: get_info() added --- script/research/fud/fud/src/main.rs | 10 ++++++++++ src/dht/dht.rs | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/script/research/fud/fud/src/main.rs b/script/research/fud/fud/src/main.rs index 54f736158..7c6082489 100644 --- a/script/research/fud/fud/src/main.rs +++ b/script/research/fud/fud/src/main.rs @@ -320,6 +320,15 @@ impl Fud { } } } + + // RPCAPI: + // Retrieves P2P network information. + // --> {"jsonrpc": "2.0", "method": "get_info", "params": [], "id": 42} + // <-- {"jsonrpc": "2.0", result": {"nodeID": [], "nodeinfo": [], "id": 42} + async fn get_info(&self, id: Value, _params: &[Value]) -> JsonResult { + let resp = self.dht.read().await.p2p.get_info().await; + JsonResponse::new(resp, id).into() + } } #[async_trait] @@ -335,6 +344,7 @@ impl RequestHandler for Fud { Some("list") => return self.list(req.id, params).await, Some("sync") => return self.sync(req.id, params).await, Some("get") => return self.get(req.id, params).await, + Some("get_info") => return self.get_info(req.id, params).await, Some(_) | None => return JsonError::new(MethodNotFound, None, req.id).into(), } } diff --git a/src/dht/dht.rs b/src/dht/dht.rs index a5a3fb751..f7bd682a9 100644 --- a/src/dht/dht.rs +++ b/src/dht/dht.rs @@ -41,7 +41,7 @@ pub struct Dht { /// Network lookup map, containing nodes that holds each key pub lookup: FxHashMap>, /// P2P network pointer - p2p: P2pPtr, + pub p2p: P2pPtr, /// Channel to receive responses from P2P p2p_recv_channel: async_channel::Receiver, /// Stop signal channel to terminate background processes