From 272e2d62e044a785db64becf2d8006fdda985d6a Mon Sep 17 00:00:00 2001 From: Scott Lawrence Date: Sat, 29 Jun 2024 11:02:33 -0700 Subject: Fetching state over socket --- src/main.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0282ec7..e9e5e0e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,7 @@ -use std::io::Write; +use std::error; +use std::io::{Read,Write}; use std::os::unix::net::{UnixStream,UnixListener}; +use std::str; use std::sync::{Arc,Mutex}; use std::thread::{sleep,spawn}; use std::time::{Duration,Instant,SystemTime}; @@ -37,6 +39,8 @@ struct State { asof: SystemTime, } +type Result = std::result::Result>; + fn init_state() -> State { let asof = SystemTime::now(); return State { @@ -49,9 +53,11 @@ fn update_state(state: &mut State) { state.asof = asof; } -fn get_state(sockfile: String) -> std::io::Result { - let mut socket = UnixStream::connect(sockfile); - Ok(init_state()) +fn get_state(sockfile: String) -> Result { + let mut socket = UnixStream::connect(sockfile)?; + let mut buf = vec![]; + socket.read_to_end(&mut buf)?; + Ok(serde_json::from_str::(str::from_utf8(&buf)?)?) } fn main() { -- cgit v1.2.3-54-g00ecf