From dde8b7f91149d1366cb1d8e520c3fac408c093be Mon Sep 17 00:00:00 2001 From: Emmanuel Bosquet Date: Mon, 22 Apr 2024 17:22:48 +0200 Subject: [PATCH] access logs: create unix datagram with UnixDatagram::unbound --- command/src/logging/logs.rs | 17 +++-------------- command/src/logging/mod.rs | 6 ++++-- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/command/src/logging/logs.rs b/command/src/logging/logs.rs index 1ac6df1a6..032209357 100644 --- a/command/src/logging/logs.rs +++ b/command/src/logging/logs.rs @@ -12,7 +12,6 @@ use std::{ use mio::net::UnixDatagram; use prost::{encoding::encoded_len_varint, Message}; -use rand::{distributions::Alphanumeric, thread_rng, Rng}; use crate::{ config::Config, @@ -695,21 +694,11 @@ pub fn target_to_backend(target: &str) -> Result { } if let Some(addr) = target.strip_prefix("unix://") { - let path = Path::new(addr); - let mut dir = env::temp_dir(); - let s: String = thread_rng() - .sample_iter(&Alphanumeric) - .take(12) - .map(|c| c as char) - .collect(); - dir.push(s); - - let socket = - UnixDatagram::bind(dir).map_err(|e| LogError::BindUnixDatagram(addr.to_owned(), e))?; + let socket = UnixDatagram::unbound().map_err(LogError::CreateUnixSocket)?; socket - .connect(path) - .map_err(|e| LogError::InvalidLogTarget(target.to_owned(), e.to_string()))?; + .connect(addr) + .map_err(|e| LogError::ConnectToUnixSocket(target.to_owned(), e))?; return Ok(LoggerBackend::Unix(socket)); } diff --git a/command/src/logging/mod.rs b/command/src/logging/mod.rs index b0485d5e2..ebc754bbb 100644 --- a/command/src/logging/mod.rs +++ b/command/src/logging/mod.rs @@ -24,6 +24,8 @@ pub enum LogError { InvalidLogTarget(String, String), #[error("could not connect to TCP socket {0}: {1}")] TcpConnect(String, IoError), - #[error("could not bind UNIX datagram {0}: {1}")] - BindUnixDatagram(String, IoError), + #[error("could not create unbound UNIX datagram: {0}")] + CreateUnixSocket(IoError), + #[error("could not connect to UNIX datagram {0}: {1}")] + ConnectToUnixSocket(String, IoError), }