Skip to content

Commit

Permalink
Use Rust stdlib Unix socket
Browse files Browse the repository at this point in the history
rust-lang/rust#14194 has been resolved,
unix_socket is deprecated.
  • Loading branch information
curiousleo committed Dec 9, 2019
1 parent 04b2a5a commit b0226a6
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 15 deletions.
1 change: 0 additions & 1 deletion varlink/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ winapi = { version = "0.3", features = ["winuser", "winsock2"] }

[target.'cfg(unix)'.dependencies]
libc = { version = "0", default-features = false }
unix_socket = "0.5"

[dev-dependencies]
static_assertions = "1.1.0"
11 changes: 2 additions & 9 deletions varlink/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::net::TcpStream;
#[cfg(unix)]
use std::os::unix::io::IntoRawFd;
#[cfg(unix)]
use std::os::unix::net::UnixStream;
use std::os::unix::net::{UnixListener, UnixStream};
use std::process::Child;

#[cfg(unix)]
Expand Down Expand Up @@ -45,14 +45,11 @@ pub fn varlink_connect<S: ?Sized + AsRef<str>>(address: &S) -> Result<(Box<dyn S

#[cfg(any(target_os = "linux", target_os = "android"))]
fn get_abstract_unixstream(addr: &str) -> Result<UnixStream> {
// FIXME: abstract unix domains sockets still not in std
// FIXME: https://github.com/rust-lang/rust/issues/14194
use std::os::unix::io::FromRawFd;
use unix_socket::UnixStream as AbstractStream;

unsafe {
Ok(UnixStream::from_raw_fd(
AbstractStream::connect(addr)
UnixStream::connect(addr)
.map_err(map_context!())?
.into_raw_fd(),
))
Expand Down Expand Up @@ -83,9 +80,6 @@ pub fn varlink_exec<S: ?Sized + AsRef<str>>(
use tempfile::tempdir;

let executable = String::from("exec ") + address.as_ref();

use unix_socket::UnixListener;

let dir = tempdir().map_err(map_context!())?;
let file_path = dir.path().join("varlink-socket");

Expand Down Expand Up @@ -152,7 +146,6 @@ pub fn varlink_bridge<S: ?Sized + AsRef<str>>(address: &S) -> Result<(Child, Box
use std::process::Command;

let executable = address.as_ref();
// use unix_socket::UnixStream;
let (stream0, stream1) = UnixStream::pair().map_err(map_context!())?;
let fd = stream1.into_raw_fd();
let childin = unsafe { ::std::fs::File::from_raw_fd(fd) };
Expand Down
6 changes: 1 addition & 5 deletions varlink/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,9 @@ fn activation_listener() -> Result<Option<usize>> {

#[cfg(any(target_os = "linux", target_os = "android"))]
fn get_abstract_unixlistener(addr: &str) -> Result<UnixListener> {
// FIXME: abstract unix domains sockets still not in std
// FIXME: https://github.com/rust-lang/rust/issues/14194
use unix_socket::UnixListener as AbstractUnixListener;

unsafe {
Ok(UnixListener::from_raw_fd(
AbstractUnixListener::bind(addr)
UnixListener::bind(addr)
.map_err(map_context!())?
.into_raw_fd(),
))
Expand Down

0 comments on commit b0226a6

Please sign in to comment.