Files
zesdex/src/ipc/server.rs
T

21 lines
498 B
Rust
Raw Normal View History

use std::os::unix::net::UnixListener;
use anyhow::Result;
use super::conn::Connection;
pub struct IpcServer {
listener: UnixListener,
}
impl IpcServer {
pub fn bind_unix(path: &str) -> Result<Self> {
let _ = std::fs::remove_file(path);
let listener = UnixListener::bind(path)?;
Ok(IpcServer { listener })
}
pub fn accept(&self) -> Result<Connection> {
let (stream, _addr) = self.listener.accept()?;
Connection::from_stream(stream)
}
}