From c7dd68a7bf0b8b23db5fa9719d5bbd7efad56327 Mon Sep 17 00:00:00 2001 From: jaensen Date: Wed, 28 Dec 2022 19:35:00 +0100 Subject: [PATCH] use a 'listen_at' argument (e.g. 0.0.0.0:1234) instead of only a 'port' (1234). Allows to select an interface to listen on. --- README.md | 4 ++-- src/bin/server.rs | 8 ++------ src/server.rs | 5 ++--- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index e8bcdac..8ddde8c 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ https://chriseth.github.io/pathfinder2/edges.dat #### Using the Server -`cargo run --release ` will start a JSON-RPC server listening on the given port. +`cargo run --release :` will start a JSON-RPC server listening on the given port. It implements the interface specified in https://hackmd.io/Gg04t7gjQKeDW2Q6Jchp0Q @@ -57,4 +57,4 @@ Example: `cargo run --bin convert --safes-json safes.json --edges-bin edges.dat` -Converts a safe json file called `safes.json` into a binary edge database file called `edges.dat`. \ No newline at end of file +Converts a safe json file called `safes.json` into a binary edge database file called `edges.dat`. diff --git a/src/bin/server.rs b/src/bin/server.rs index cbe0fb1..bb7a589 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -3,10 +3,6 @@ use std::env; use pathfinder2::server; fn main() { - let port = if env::args().len() == 1 { - 8080 - } else { - env::args().nth(1).unwrap().as_str().parse::().unwrap() - }; - server::start_server(port, 10, 4); + let listen_at = env::args().nth(1).unwrap_or("127.0.0.1:8080".to_string()); + server::start_server(&listen_at, 10, 4); } diff --git a/src/server.rs b/src/server.rs index 872b724..5b894c2 100644 --- a/src/server.rs +++ b/src/server.rs @@ -18,7 +18,7 @@ struct JsonRpcRequest { params: JsonValue, } -pub fn start_server(port: u16, queue_size: usize, threads: u64) { +pub fn start_server(listen_at: &str, queue_size: usize, threads: u64) { let edges: Arc>> = Arc::new(RwLock::new(Arc::new(EdgeDB::default()))); let (sender, receiver) = mpsc::sync_channel(queue_size); @@ -33,8 +33,7 @@ pub fn start_server(port: u16, queue_size: usize, threads: u64) { } }); } - let listener = - TcpListener::bind(format!("127.0.0.1:{port}")).expect("Could not create server."); + let listener = TcpListener::bind(listen_at).expect("Could not create server."); loop { match listener.accept() { Ok((socket, _)) => match sender.try_send(socket) {