summary refs log tree commit diff
path: root/src/wl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/wl.rs')
-rw-r--r--src/wl.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/wl.rs b/src/wl.rs
index bf8989e..1581b2c 100644
--- a/src/wl.rs
+++ b/src/wl.rs
@@ -6,6 +6,10 @@ use devices::virtio::{
 };
 use msg_socket::MsgSocket;
 use std::fs::remove_file;
+use std::io::prelude::*;
+use std::io::stdout;
+use std::os::unix::prelude::*;
+use std::process;
 use sys_util::{error, net::UnixSeqpacketListener, GuestMemory};
 use vm_control::MaybeOwnedFd;
 
@@ -20,11 +24,16 @@ fn main() {
     eprintln!("hello world");
 
     // Create and display the socket.
-    let mut path = std::env::var("XDG_RUNTIME_DIR").expect("XDG_RUNTIME_DIR missing");
-    path.push_str("/crosvm-wl.sock");
+    let mut path = std::env::var_os("XDG_RUNTIME_DIR").expect("XDG_RUNTIME_DIR missing");
+    path.push("/crosvm_wl-");
+    path.push(process::id().to_string());
+    path.push(".sock");
     let _ = remove_file(&path);
     let server = UnixSeqpacketListener::bind(&path).expect("failed to create control socket");
-    println!("{}", path);
+    match stdout().write_all(path.as_bytes()) {
+        Ok(()) => println!(),
+        Err(e) => eprintln!("{}", e),
+    }
 
     // Receive connection from crosvm.
     let conn = server.accept().expect("accept failed");