Dusk Unix Domain Sockets
Minimalistic boilerplate for [UnixListener
] bindings.
Complies with the log facade.
Installation
Add this to your Cargo.toml
:
[dependencies]
dusk-uds = "0.1"
Example
use dusk_uds::{Message, State, UnixDomainSocket};
use std::io::{Read, Write};
use std::sync::mpsc;
fn handler<S: Read + Write>(socket: S, sender: mpsc::Sender<Message>) -> S {
let mut socket = socket;
let mut buf = [0u8; 4];
socket.read_exact(&mut buf).unwrap();
socket.write_all(b"Some reply").unwrap();
sender
.send(Message::ChangeState(State::ShouldQuit))
.unwrap();
socket
}
fn main() {
let uds = UnixDomainSocket::from("/dev/null").bind(handler);
if let Err(_e) = uds {
}
}