From 19c1b8ffeaf266d1cbfc9516ffe6b55349ff929f Mon Sep 17 00:00:00 2001 From: jkds Date: Wed, 31 Dec 2025 04:07:56 +0100 Subject: [PATCH] rpc: remove p2p.set_outbound_connections method --- bin/darkirc/src/rpc.rs | 3 --- script/node_get_info.py | 3 --- script/node_set-conns.py | 55 ---------------------------------------- src/rpc/p2p_method.rs | 32 +---------------------- 4 files changed, 1 insertion(+), 92 deletions(-) delete mode 100755 script/node_set-conns.py diff --git a/bin/darkirc/src/rpc.rs b/bin/darkirc/src/rpc.rs index 4b6849fe8..3950f0cb6 100644 --- a/bin/darkirc/src/rpc.rs +++ b/bin/darkirc/src/rpc.rs @@ -44,9 +44,6 @@ impl RequestHandler<()> for DarkIrc { "dnet.switch" => self.dnet_switch(req.id, req.params).await, "dnet.subscribe_events" => self.dnet_subscribe_events(req.id, req.params).await, "p2p.get_info" => self.p2p_get_info(req.id, req.params).await, - "p2p.set_outbound_connections" => { - self.p2p_set_outbound_connections(req.id, req.params).await - } "deg.switch" => self.deg_switch(req.id, req.params).await, "deg.subscribe_events" => self.deg_subscribe_events(req.id, req.params).await, diff --git a/script/node_get_info.py b/script/node_get_info.py index 20bb5255a..729cbe272 100755 --- a/script/node_get_info.py +++ b/script/node_get_info.py @@ -76,9 +76,6 @@ class JsonRpc: async def get_info(self): return await self._make_request("p2p.get_info", []) - async def set_outbound_connections(self, n): - return await self._make_request("p2p.set_outbound_connections", [n]) - async def main(argv): rpc = JsonRpc() while True: diff --git a/script/node_set-conns.py b/script/node_set-conns.py deleted file mode 100755 index ac2ce3a26..000000000 --- a/script/node_set-conns.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python3 - -# This file is part of DarkFi (https://dark.fi) -# -# Copyright (C) 2020-2025 Dyne.org foundation -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import asyncio -import sys -from node_get_info import JsonRpc - -async def main(argv): - if len(argv) != 2: - print(f"Usage: {argv[0]} ", file=sys.stderr) - sys.exit(1) - - try: - num_conns = int(argv[1]) - if num_conns <= 0: - raise ValueError() - except ValueError: - print("Error: num_connections must be a positive integer", file=sys.stderr) - sys.exit(1) - - rpc = JsonRpc() - while True: - try: - await rpc.start("localhost", 26660) - break - except OSError: - pass - - response = await rpc.set_outbound_connections(num_conns) - - if "error" in response: - print(f"Error: {response['error']}") - await rpc.stop() - sys.exit(1) - - print(f"Set outbound connections to {num_conns}: {response['result']}") - await rpc.stop() - -asyncio.run(main(sys.argv)) diff --git a/src/rpc/p2p_method.rs b/src/rpc/p2p_method.rs index 6308b7a0e..3150dd0f5 100644 --- a/src/rpc/p2p_method.rs +++ b/src/rpc/p2p_method.rs @@ -19,7 +19,7 @@ use async_trait::async_trait; use super::{ - jsonrpc::{ErrorCode, JsonError, JsonResponse, JsonResult}, + jsonrpc::{JsonResponse, JsonResult}, util::*, }; use crate::net; @@ -57,35 +57,5 @@ pub trait HandlerP2p: Sync + Send { JsonResponse::new(result, id).into() } - // RPCAPI: - // Set the number of outbound connections for the P2P stack. - // Takes a positive integer representing the desired number of outbound connection slots. - // Returns `true` on success. If the number is greater than current, new slots are added. - // If the number is less than current, slots are removed (prioritizing empty slots). - // - // --> {"jsonrpc": "2.0", "method": "p2p.set_outbound_connections", "params": [5], "id": 42} - // <-- {"jsonrpc": "2.0", "result": true, "id": 42} - async fn p2p_set_outbound_connections(&self, id: u16, params: JsonValue) -> JsonResult { - let Some(params) = params.get::>() else { - return JsonError::new(ErrorCode::InvalidParams, None, id).into() - }; - if params.len() != 1 || !params[0].is_number() { - return JsonError::new(ErrorCode::InvalidParams, None, id).into() - } - - let n_f64 = params[0].get::().unwrap(); - let n = *n_f64 as u32; - - if *n_f64 != n as f64 || n == 0 { - return JsonError::new(ErrorCode::InvalidParams, None, id).into() - } - - if let Err(e) = self.p2p().session_outbound().set_outbound_connections(n as usize).await { - return JsonError::new(ErrorCode::InternalError, Some(e.to_string()), id).into() - } - - JsonResponse::new(JsonValue::Boolean(true), id).into() - } - fn p2p(&self) -> net::P2pPtr; }