client: bind socket to abstract name before connect
it seems that the server can't sendto() an unbound peer
This commit is contained in:
+7
-2
@@ -4,11 +4,12 @@ use std::{
|
||||
os::unix::net::{
|
||||
UnixDatagram,
|
||||
SocketAncillary,
|
||||
AncillaryData
|
||||
SocketAddr
|
||||
},
|
||||
env,
|
||||
io::IoSlice
|
||||
};
|
||||
use std::os::linux::net::SocketAddrExt;
|
||||
|
||||
fn main() {
|
||||
let mut payload = "".to_string();
|
||||
@@ -22,7 +23,11 @@ fn main() {
|
||||
let Ok(sock_path) = env::var("LUAD_SOCKET_PATH") else {
|
||||
panic!("need to set LUAD_SOCKET_PATH env var");
|
||||
};
|
||||
let sock = UnixDatagram::unbound().expect("socket");
|
||||
let pid = std::process::id();
|
||||
|
||||
let addr = SocketAddr::from_abstract_name(pid.to_le_bytes()).expect("addr");
|
||||
let sock = UnixDatagram::bind_addr(&addr).expect("bind");
|
||||
|
||||
sock.connect(sock_path).expect("connect");
|
||||
let fds = [0, 1, 2];
|
||||
let mut ancillary_buffer = [0; 128];
|
||||
|
||||
Reference in New Issue
Block a user