diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-07-06 16:17:26 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-07-06 16:22:27 +0000 |
commit | c612facef385949daec552c2679491e71d2311e5 (patch) | |
tree | 789f4634c0f4d9bc8cea94af0b9232f95972b2d1 /src | |
parent | 7214f019550c6c8766b65c145640d34d5550db78 (diff) | |
download | crosvm-c612facef385949daec552c2679491e71d2311e5.tar crosvm-c612facef385949daec552c2679491e71d2311e5.tar.gz crosvm-c612facef385949daec552c2679491e71d2311e5.tar.bz2 crosvm-c612facef385949daec552c2679491e71d2311e5.tar.lz crosvm-c612facef385949daec552c2679491e71d2311e5.tar.xz crosvm-c612facef385949daec552c2679491e71d2311e5.tar.zst crosvm-c612facef385949daec552c2679491e71d2311e5.zip |
crosvm: make wl add take socket as fd
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index 7b47d3c..611dd29 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,6 +12,7 @@ use std::fs::{File, OpenOptions}; use std::io::{BufRead, BufReader}; use std::num::ParseIntError; use std::os::unix::io::{FromRawFd, RawFd}; +use std::os::unix::net::UnixStream; use std::path::{Path, PathBuf}; use std::string::String; use std::thread::sleep; @@ -2191,8 +2192,10 @@ fn wl_cmd(mut args: std::env::Args) -> std::result::Result<(), ()> { let request = match subcommand { "add" => { let name = args.next().unwrap().as_bytes().to_vec(); - let path = args.next().unwrap().into(); - VmRequest::WlCommand(WlControlCommand::AddSocket { name, path }) + // Safe because we're taking ownership of descriptor 3, and won't use it for anything + // else. + let socket = unsafe { UnixStream::from_raw_fd(3) }; + VmRequest::WlCommand(WlControlCommand::AddSocket { name, socket }) } _ => { error!("Unknown wl subcommand '{}'", subcommand); |