From 43ed3052e496d71b9dd3aed6f015aa930eec43d3 Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 22 Oct 2021 16:45:44 +0200 Subject: [PATCH] rpc/jsonrpc: Implement requests over Unix sockets. --- src/rpc/jsonrpc.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/rpc/jsonrpc.rs b/src/rpc/jsonrpc.rs index 95ed2e7be..2dffccd80 100644 --- a/src/rpc/jsonrpc.rs +++ b/src/rpc/jsonrpc.rs @@ -1,4 +1,5 @@ use std::net::{TcpStream, ToSocketAddrs}; +use std::os::unix::net::UnixStream; use std::str; use async_std::io::{ReadExt, WriteExt}; @@ -186,3 +187,16 @@ pub async fn send_raw_request(url: &str, data: Value) -> Result Result { + let mut buf = [0; 2048]; + let bytes_read: usize; + let data_str = serde_json::to_string(&data)?; + + let mut stream = Async::::connect(path).await?; + stream.write_all(&data_str.as_bytes()).await?; + bytes_read = stream.read(&mut buf[..]).await?; + + let reply: JsonResult = serde_json::from_slice(&buf[0..bytes_read])?; + Ok(reply) +}