Skip to content

Commit

Permalink
access logs: create unix datagram with UnixDatagram::unbound
Browse files Browse the repository at this point in the history
  • Loading branch information
Keksoj committed Apr 22, 2024
1 parent 79ded6d commit dde8b7f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 16 deletions.
17 changes: 3 additions & 14 deletions command/src/logging/logs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -695,21 +694,11 @@ pub fn target_to_backend(target: &str) -> Result<LoggerBackend, LogError> {
}

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));
}
Expand Down
6 changes: 4 additions & 2 deletions command/src/logging/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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),
}

0 comments on commit dde8b7f

Please sign in to comment.