From 2cd9f506043af082f0ca22e9f175e9d3b6e65fef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dav=C3=AD=C3=B0=20Steinn=20Geirsson?= Date: Wed, 18 Mar 2026 16:17:14 +0000 Subject: [PATCH] fix: use Connection::from_socket instead of set_var for wayland connection Avoids environment mutation (set_var is unsafe in multi-threaded contexts). Uses UnixStream::connect + Connection::from_socket directly. Co-Authored-By: Claude Sonnet 4.6 --- vmsilo-wayland-seccontext/src/main.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vmsilo-wayland-seccontext/src/main.rs b/vmsilo-wayland-seccontext/src/main.rs index 3691af2..6a0df0a 100644 --- a/vmsilo-wayland-seccontext/src/main.rs +++ b/vmsilo-wayland-seccontext/src/main.rs @@ -7,7 +7,7 @@ use std::os::fd::{AsFd, FromRawFd, OwnedFd}; use std::os::unix::io::IntoRawFd; -use std::os::unix::net::UnixListener; +use std::os::unix::net::{UnixListener, UnixStream}; use anyhow::{Context, Result}; use clap::Parser; @@ -108,9 +108,10 @@ fn main() -> Result<()> { nix::unistd::pipe().context("Failed to create close pipe")?; // Connect to the compositor. - std::env::set_var("WAYLAND_DISPLAY", &args.wayland_socket); - let conn = - Connection::connect_to_env().context("Failed to connect to Wayland compositor")?; + let wayland_stream = UnixStream::connect(&args.wayland_socket) + .with_context(|| format!("Failed to connect to Wayland compositor at {}", args.wayland_socket))?; + let conn = Connection::from_socket(wayland_stream) + .context("Failed to create Wayland connection")?; let (globals, mut event_queue) = registry_queue_init::(&conn).context("Failed to initialize Wayland registry")?;