diff --git a/liana/src/jsonrpc/server/mod.rs b/liana/src/jsonrpc/server/mod.rs new file mode 100644 index 000000000..b54268a2b --- /dev/null +++ b/liana/src/jsonrpc/server/mod.rs @@ -0,0 +1,31 @@ +#[cfg(unix)] +mod unix; + +use std::{ + io, path, + sync::{atomic::AtomicBool, Arc}, +}; + +use crate::DaemonControl; + +#[cfg(unix)] +pub fn run( + socket_path: &path::Path, + daemon_control: DaemonControl, + shutdown: Arc, +) -> Result<(), io::Error> { + let listener = unix::rpcserver_setup(socket_path)?; + log::info!("JSONRPC server started."); + let res = unix::rpcserver_loop(listener, daemon_control, shutdown); + log::info!("JSONRPC server stopped."); + res +} + +#[cfg(windows)] +pub fn run( + _socket_path: &path::Path, + _daemon_control: DaemonControl, + _shutdown: Arc, +) -> Result<(), io::Error> { + todo!("Implement a json rpc server over Named pipe"); +} diff --git a/liana/src/jsonrpc/server.rs b/liana/src/jsonrpc/server/unix.rs similarity index 100% rename from liana/src/jsonrpc/server.rs rename to liana/src/jsonrpc/server/unix.rs diff --git a/liana/src/lib.rs b/liana/src/lib.rs index 451e41ca6..045111738 100644 --- a/liana/src/lib.rs +++ b/liana/src/lib.rs @@ -20,7 +20,7 @@ pub use crate::bitcoin::{ electrum::{Electrum, ElectrumError}, }; -use crate::jsonrpc::server::{rpcserver_loop, rpcserver_setup}; +use crate::jsonrpc::server; use crate::{ bitcoin::{poller, BitcoinInterface}, config::Config, @@ -516,11 +516,7 @@ impl DaemonHandle { move || { let mut rpc_socket = data_dir; rpc_socket.push("lianad_rpc"); - let listener = rpcserver_setup(&rpc_socket)?; - log::info!("JSONRPC server started."); - - rpcserver_loop(listener, control, shutdown)?; - log::info!("JSONRPC server stopped."); + server::run(&rpc_socket, control, shutdown)?; Ok(()) } })