Skip to content

std: move network code into sys #136449

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Feb 6, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions library/std/src/net/socket_addr.rs
Original file line number Diff line number Diff line change
@@ -6,8 +6,7 @@ mod tests;
pub use core::net::{SocketAddr, SocketAddrV4, SocketAddrV6};

use crate::net::{IpAddr, Ipv4Addr, Ipv6Addr};
use crate::sys::net::netc as c;
use crate::sys_common::net::LookupHost;
use crate::sys::net::{LookupHost, netc as c};
use crate::sys_common::{FromInner, IntoInner};
use crate::{io, iter, mem, option, slice, vec};

3 changes: 2 additions & 1 deletion library/std/src/net/tcp.rs
Original file line number Diff line number Diff line change
@@ -15,7 +15,8 @@ use crate::io::prelude::*;
use crate::io::{self, BorrowedCursor, IoSlice, IoSliceMut};
use crate::iter::FusedIterator;
use crate::net::{Shutdown, SocketAddr, ToSocketAddrs};
use crate::sys_common::{AsInner, FromInner, IntoInner, net as net_imp};
use crate::sys::net as net_imp;
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::Duration;

/// A TCP stream between a local and a remote socket.
3 changes: 2 additions & 1 deletion library/std/src/net/udp.rs
Original file line number Diff line number Diff line change
@@ -12,7 +12,8 @@ mod tests;
use crate::fmt;
use crate::io::{self, ErrorKind};
use crate::net::{Ipv4Addr, Ipv6Addr, SocketAddr, ToSocketAddrs};
use crate::sys_common::{AsInner, FromInner, IntoInner, net as net_imp};
use crate::sys::net as net_imp;
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::Duration;

/// A UDP socket.
4 changes: 2 additions & 2 deletions library/std/src/os/fd/net.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::os::fd::owned::OwnedFd;
use crate::os::fd::raw::{AsRawFd, FromRawFd, IntoRawFd, RawFd};
use crate::sys_common::{self, AsInner, FromInner, IntoInner};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::{net, sys};

macro_rules! impl_as_raw_fd {
@@ -24,7 +24,7 @@ macro_rules! impl_from_raw_fd {
unsafe fn from_raw_fd(fd: RawFd) -> net::$t {
unsafe {
let socket = sys::net::Socket::from_inner(FromInner::from_inner(OwnedFd::from_raw_fd(fd)));
net::$t::from_inner(sys_common::net::$t::from_inner(socket))
net::$t::from_inner(sys::net::$t::from_inner(socket))
}
}
}
2 changes: 1 addition & 1 deletion library/std/src/os/hermit/io/net.rs
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ macro_rules! impl_from_raw_fd {
unsafe fn from_raw_fd(fd: RawFd) -> net::$t {
unsafe {
let socket = sys::net::Socket::from_inner(FromInner::from_inner(OwnedFd::from_raw_fd(fd)));
net::$t::from_inner(sys_common::net::$t::from_inner(socket))
net::$t::from_inner(sys::net::$t::from_inner(socket))
}
}
}
4 changes: 2 additions & 2 deletions library/std/src/os/solid/io.rs
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@

use crate::marker::PhantomData;
use crate::mem::ManuallyDrop;
use crate::sys_common::{self, AsInner, FromInner, IntoInner};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::{fmt, net, sys};

/// Raw file descriptors.
@@ -387,7 +387,7 @@ macro_rules! impl_from_raw_fd {
#[inline]
unsafe fn from_raw_fd(fd: RawFd) -> net::$t {
let socket = unsafe { sys::net::Socket::from_raw_fd(fd) };
net::$t::from_inner(sys_common::net::$t::from_inner(socket))
net::$t::from_inner(sys::net::$t::from_inner(socket))
}
}
)*};
8 changes: 4 additions & 4 deletions library/std/src/os/windows/io/raw.rs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@
use crate::os::windows::io::{AsHandle, AsSocket};
use crate::os::windows::io::{OwnedHandle, OwnedSocket};
use crate::os::windows::raw;
use crate::sys_common::{self, AsInner, FromInner, IntoInner};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::{fs, io, net, ptr, sys};

/// Raw HANDLEs.
@@ -262,7 +262,7 @@ impl FromRawSocket for net::TcpStream {
unsafe fn from_raw_socket(sock: RawSocket) -> net::TcpStream {
unsafe {
let sock = sys::net::Socket::from_inner(OwnedSocket::from_raw_socket(sock));
net::TcpStream::from_inner(sys_common::net::TcpStream::from_inner(sock))
net::TcpStream::from_inner(sys::net::TcpStream::from_inner(sock))
}
}
}
@@ -272,7 +272,7 @@ impl FromRawSocket for net::TcpListener {
unsafe fn from_raw_socket(sock: RawSocket) -> net::TcpListener {
unsafe {
let sock = sys::net::Socket::from_inner(OwnedSocket::from_raw_socket(sock));
net::TcpListener::from_inner(sys_common::net::TcpListener::from_inner(sock))
net::TcpListener::from_inner(sys::net::TcpListener::from_inner(sock))
}
}
}
@@ -282,7 +282,7 @@ impl FromRawSocket for net::UdpSocket {
unsafe fn from_raw_socket(sock: RawSocket) -> net::UdpSocket {
unsafe {
let sock = sys::net::Socket::from_inner(OwnedSocket::from_raw_socket(sock));
net::UdpSocket::from_inner(sys_common::net::UdpSocket::from_inner(sock))
net::UdpSocket::from_inner(sys::net::UdpSocket::from_inner(sock))
}
}
}
1 change: 1 addition & 0 deletions library/std/src/sys/mod.rs
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@ pub mod anonymous_pipe;
pub mod backtrace;
pub mod cmath;
pub mod exit_guard;
pub mod net;
pub mod os_str;
pub mod path;
pub mod random;
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use super::abi::usercalls;
use crate::io::{self, BorrowedCursor, IoSlice, IoSliceMut};
use crate::net::{Ipv4Addr, Ipv6Addr, Shutdown, SocketAddr, ToSocketAddrs};
use crate::sync::Arc;
use crate::sys::abi::usercalls;
use crate::sys::fd::FileDesc;
use crate::sys::{AsInner, FromInner, IntoInner, TryIntoInner, sgx_ineffective, unsupported};
use crate::time::Duration;
Original file line number Diff line number Diff line change
@@ -5,11 +5,31 @@ use crate::ffi::{c_int, c_void};
use crate::io::{self, BorrowedCursor, ErrorKind, IoSlice, IoSliceMut};
use crate::net::{Ipv4Addr, Ipv6Addr, Shutdown, SocketAddr};
use crate::sys::common::small_c_string::run_with_cstr;
use crate::sys::net::{Socket, cvt, cvt_gai, cvt_r, init, netc as c, wrlen_t};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::Duration;
use crate::{cmp, fmt, mem, ptr};

cfg_if::cfg_if! {
if #[cfg(target_os = "hermit")] {
mod hermit;
pub use hermit::*;
} else if #[cfg(target_os = "solid_asp3")] {
mod solid;
pub use solid::*;
} else if #[cfg(target_family = "unix")] {
mod unix;
pub use unix::*;
} else if #[cfg(all(target_os = "wasi", target_env = "p2"))] {
mod wasip2;
pub use wasip2::*;
} else if #[cfg(target_os = "windows")] {
mod windows;
pub use windows::*;
}
}

use netc as c;

cfg_if::cfg_if! {
if #[cfg(any(
target_os = "dragonfly",
@@ -24,11 +44,11 @@ cfg_if::cfg_if! {
target_os = "nuttx",
target_vendor = "apple",
))] {
use crate::sys::net::netc::IPV6_JOIN_GROUP as IPV6_ADD_MEMBERSHIP;
use crate::sys::net::netc::IPV6_LEAVE_GROUP as IPV6_DROP_MEMBERSHIP;
use c::IPV6_JOIN_GROUP as IPV6_ADD_MEMBERSHIP;
use c::IPV6_LEAVE_GROUP as IPV6_DROP_MEMBERSHIP;
} else {
use crate::sys::net::netc::IPV6_ADD_MEMBERSHIP;
use crate::sys::net::netc::IPV6_DROP_MEMBERSHIP;
use c::IPV6_ADD_MEMBERSHIP;
use c::IPV6_DROP_MEMBERSHIP;
}
}

Original file line number Diff line number Diff line change
@@ -2,21 +2,20 @@

use core::ffi::c_int;

use super::fd::FileDesc;
pub(crate) use hermit_abi as netc;

use crate::io::{self, BorrowedBuf, BorrowedCursor, IoSlice, IoSliceMut};
use crate::net::{Shutdown, SocketAddr};
use crate::os::hermit::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, RawFd};
use crate::sys::fd::FileDesc;
use crate::sys::net::{getsockopt, setsockopt, sockaddr_to_addr};
use crate::sys::time::Instant;
use crate::sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr};
pub use crate::sys::{cvt, cvt_r};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::Duration;
use crate::{cmp, mem};

#[allow(unused_extern_crates)]
pub extern crate hermit_abi as netc;

pub use crate::sys::{cvt, cvt_r};

#[expect(non_camel_case_types)]
pub type wrlen_t = usize;

pub fn cvt_gai(err: i32) -> io::Result<()> {
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
use libc::{c_int, c_void, size_t};

use self::netc::{MSG_PEEK, sockaddr, socklen_t};
use super::abi;
use crate::ffi::CStr;
use crate::io::{self, BorrowedBuf, BorrowedCursor, ErrorKind, IoSlice, IoSliceMut};
use crate::net::{Shutdown, SocketAddr};
use crate::os::solid::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd};
use crate::sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr};
use crate::sys::abi;
use crate::sys::net::{getsockopt, setsockopt, sockaddr_to_addr};
use crate::sys_common::{FromInner, IntoInner};
use crate::time::Duration;
use crate::{cmp, mem, ptr, str};

pub mod netc {
pub use super::super::abi::sockets::*;
pub use crate::sys::abi::sockets::*;
}

#[expect(non_camel_case_types)]
pub type wrlen_t = size_t;

const READ_LIMIT: usize = libc::ssize_t::MAX as usize;

const fn max_iov() -> usize {
// Judging by the source code, it's unlimited, but specify a lower
// value just in case.
@@ -78,7 +77,7 @@ fn last_error() -> io::Error {
io::Error::from_raw_os_error(unsafe { netc::SOLID_NET_GetLastError() })
}

pub(super) fn error_name(er: abi::ER) -> Option<&'static str> {
pub fn error_name(er: abi::ER) -> Option<&'static str> {
unsafe { CStr::from_ptr(netc::strerror(er)) }.to_str().ok()
}

@@ -87,7 +86,7 @@ pub fn is_interrupted(er: abi::ER) -> bool {
er == netc::SOLID_NET_ERR_BASE - libc::EINTR
}

pub(super) fn decode_error_kind(er: abi::ER) -> ErrorKind {
pub fn decode_error_kind(er: abi::ER) -> ErrorKind {
let errno = netc::SOLID_NET_ERR_BASE - er;
match errno as libc::c_int {
libc::ECONNREFUSED => ErrorKind::ConnectionRefused,
@@ -268,17 +267,6 @@ impl Socket {
self.recv_from_with_flags(buf, MSG_PEEK)
}

pub fn write(&self, buf: &[u8]) -> io::Result<usize> {
let ret = cvt(unsafe {
netc::write(
self.as_raw_fd(),
buf.as_ptr() as *const c_void,
cmp::min(buf.len(), READ_LIMIT),
)
})?;
Ok(ret as usize)
}

pub fn write_vectored(&self, bufs: &[IoSlice<'_>]) -> io::Result<usize> {
let ret = cvt(unsafe {
netc::writev(
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -5,8 +5,8 @@ use crate::io::{self, BorrowedBuf, BorrowedCursor, IoSlice, IoSliceMut};
use crate::net::{Shutdown, SocketAddr};
use crate::os::unix::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, RawFd};
use crate::sys::fd::FileDesc;
use crate::sys::pal::unix::IsMinusOne;
use crate::sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr};
use crate::sys::net::{getsockopt, setsockopt, sockaddr_to_addr};
use crate::sys::pal::IsMinusOne;
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::{Duration, Instant};
use crate::{cmp, mem};
@@ -19,11 +19,11 @@ cfg_if::cfg_if! {
}
}

pub use crate::sys::{cvt, cvt_r};
pub(crate) use libc as netc;

#[allow(unused_extern_crates)]
pub extern crate libc as netc;
pub use crate::sys::{cvt, cvt_r};

#[expect(non_camel_case_types)]
pub type wrlen_t = size_t;

pub struct Socket(FileDesc);
Original file line number Diff line number Diff line change
@@ -6,8 +6,8 @@ use crate::ffi::CStr;
use crate::io::{self, BorrowedBuf, BorrowedCursor, IoSlice, IoSliceMut};
use crate::net::{Shutdown, SocketAddr};
use crate::os::wasi::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
use crate::sys::net::{getsockopt, setsockopt, sockaddr_to_addr};
use crate::sys::unsupported;
use crate::sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::{Duration, Instant};
use crate::{cmp, mem, str};
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ use crate::os::windows::io::{
};
use crate::sync::OnceLock;
use crate::sys::c;
use crate::sys_common::{AsInner, FromInner, IntoInner, net};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::Duration;
use crate::{cmp, mem, ptr, sys};

@@ -110,6 +110,7 @@ pub mod netc {
}
}

#[expect(missing_debug_implementations)]
pub struct Socket(OwnedSocket);

static WSA_CLEANUP: OnceLock<unsafe extern "system" fn() -> i32> = OnceLock::new();
@@ -400,12 +401,12 @@ impl Socket {
let error = unsafe { c::WSAGetLastError() };

if error == c::WSAESHUTDOWN {
Ok((0, net::sockaddr_to_addr(&storage, addrlen as usize)?))
Ok((0, super::sockaddr_to_addr(&storage, addrlen as usize)?))
} else {
Err(io::Error::from_raw_os_error(error))
}
}
_ => Ok((result as usize, net::sockaddr_to_addr(&storage, addrlen as usize)?)),
_ => Ok((result as usize, super::sockaddr_to_addr(&storage, addrlen as usize)?)),
}
}

@@ -450,11 +451,11 @@ impl Socket {
}
None => 0,
};
net::setsockopt(self, c::SOL_SOCKET, kind, timeout)
super::setsockopt(self, c::SOL_SOCKET, kind, timeout)
}

pub fn timeout(&self, kind: c_int) -> io::Result<Option<Duration>> {
let raw: u32 = net::getsockopt(self, c::SOL_SOCKET, kind)?;
let raw: u32 = super::getsockopt(self, c::SOL_SOCKET, kind)?;
if raw == 0 {
Ok(None)
} else {
@@ -487,26 +488,26 @@ impl Socket {
l_linger: linger.unwrap_or_default().as_secs() as c_ushort,
};

net::setsockopt(self, c::SOL_SOCKET, c::SO_LINGER, linger)
super::setsockopt(self, c::SOL_SOCKET, c::SO_LINGER, linger)
}

pub fn linger(&self) -> io::Result<Option<Duration>> {
let val: c::LINGER = net::getsockopt(self, c::SOL_SOCKET, c::SO_LINGER)?;
let val: c::LINGER = super::getsockopt(self, c::SOL_SOCKET, c::SO_LINGER)?;

Ok((val.l_onoff != 0).then(|| Duration::from_secs(val.l_linger as u64)))
}

pub fn set_nodelay(&self, nodelay: bool) -> io::Result<()> {
net::setsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY, nodelay as c::BOOL)
super::setsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY, nodelay as c::BOOL)
}

pub fn nodelay(&self) -> io::Result<bool> {
let raw: c::BOOL = net::getsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY)?;
let raw: c::BOOL = super::getsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY)?;
Ok(raw != 0)
}

pub fn take_error(&self) -> io::Result<Option<io::Error>> {
let raw: c_int = net::getsockopt(self, c::SOL_SOCKET, c::SO_ERROR)?;
let raw: c_int = super::getsockopt(self, c::SOL_SOCKET, c::SO_ERROR)?;
if raw == 0 { Ok(None) } else { Ok(Some(io::Error::from_raw_os_error(raw as i32))) }
}

File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
#![forbid(unsafe_op_in_unsafe_fn)]

use super::err2io;
use super::fd::WasiFd;
use crate::fmt;
use crate::io::{self, BorrowedCursor, IoSlice, IoSliceMut};
use crate::net::{Ipv4Addr, Ipv6Addr, Shutdown, SocketAddr};
use crate::os::wasi::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, RawFd};
use crate::sys::unsupported;
use crate::sys::fd::WasiFd;
use crate::sys::{err2io, unsupported};
use crate::sys_common::{AsInner, FromInner, IntoInner};
use crate::time::Duration;

File renamed without changes.
File renamed without changes.
File renamed without changes.
36 changes: 36 additions & 0 deletions library/std/src/sys/net/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
cfg_if::cfg_if! {
if #[cfg(any(
all(target_family = "unix", not(target_os = "l4re")),
target_os = "windows",
target_os = "hermit",
all(target_os = "wasi", target_env = "p2"),
target_os = "solid_asp3",
))] {
mod connection {
mod socket;
pub use socket::*;
}
} else if #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] {
mod connection {
mod sgx;
pub use sgx::*;
}
} else if #[cfg(all(target_os = "wasi", target_env = "p1"))] {
mod connection {
mod wasip1;
pub use wasip1::*;
}
} else if #[cfg(target_os = "xous")] {
mod connection {
mod xous;
pub use xous::*;
}
} else {
mod connection {
mod unsupported;
pub use unsupported::*;
}
}
}

pub use connection::*;
1 change: 0 additions & 1 deletion library/std/src/sys/pal/hermit/mod.rs
Original file line number Diff line number Diff line change
@@ -24,7 +24,6 @@ pub mod fd;
pub mod fs;
pub mod futex;
pub mod io;
pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
1 change: 0 additions & 1 deletion library/std/src/sys/pal/sgx/mod.rs
Original file line number Diff line number Diff line change
@@ -17,7 +17,6 @@ pub mod fs;
#[path = "../unsupported/io.rs"]
pub mod io;
mod libunwind_integration;
pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
3 changes: 2 additions & 1 deletion library/std/src/sys/pal/solid/error.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
pub use self::itron::error::{ItronError as SolidError, expect_success};
use super::{abi, itron, net};
use super::{abi, itron};
use crate::io::ErrorKind;
use crate::sys::net;

/// Describe the specified SOLID error code. Returns `None` if it's an
/// undefined error code.
3 changes: 1 addition & 2 deletions library/std/src/sys/pal/solid/mod.rs
Original file line number Diff line number Diff line change
@@ -24,7 +24,6 @@ pub mod env;
pub(crate) mod error;
pub mod fs;
pub mod io;
pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
@@ -51,7 +50,7 @@ pub fn unsupported_err() -> crate::io::Error {

#[inline]
pub fn is_interrupted(code: i32) -> bool {
net::is_interrupted(code)
crate::sys::net::is_interrupted(code)
}

pub fn decode_error_kind(code: i32) -> crate::io::ErrorKind {
1 change: 0 additions & 1 deletion library/std/src/sys/pal/teeos/mod.rs
Original file line number Diff line number Diff line change
@@ -15,7 +15,6 @@ pub mod env;
pub mod fs;
#[path = "../unsupported/io.rs"]
pub mod io;
pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
369 changes: 0 additions & 369 deletions library/std/src/sys/pal/teeos/net.rs

This file was deleted.

2 changes: 0 additions & 2 deletions library/std/src/sys/pal/uefi/mod.rs
Original file line number Diff line number Diff line change
@@ -19,8 +19,6 @@ pub mod fs;
pub mod helpers;
#[path = "../unsupported/io.rs"]
pub mod io;
#[path = "../unsupported/net.rs"]
pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
564 changes: 0 additions & 564 deletions library/std/src/sys/pal/unix/l4re.rs

This file was deleted.

6 changes: 0 additions & 6 deletions library/std/src/sys/pal/unix/mod.rs
Original file line number Diff line number Diff line change
@@ -14,14 +14,8 @@ pub mod futex;
pub mod io;
#[cfg(any(target_os = "linux", target_os = "android"))]
pub mod kernel_copy;
#[cfg(target_os = "l4re")]
mod l4re;
#[cfg(target_os = "linux")]
pub mod linux;
#[cfg(not(target_os = "l4re"))]
pub mod net;
#[cfg(target_os = "l4re")]
pub use self::l4re::net;
pub mod os;
pub mod pipe;
pub mod process;
1 change: 0 additions & 1 deletion library/std/src/sys/pal/unsupported/mod.rs
Original file line number Diff line number Diff line change
@@ -4,7 +4,6 @@ pub mod args;
pub mod env;
pub mod fs;
pub mod io;
pub mod net;
pub mod os;
pub mod pipe;
pub mod process;
4 changes: 1 addition & 3 deletions library/std/src/sys/pal/wasi/mod.rs
Original file line number Diff line number Diff line change
@@ -22,7 +22,6 @@ pub mod fs;
pub mod futex;
pub mod io;

pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
@@ -45,5 +44,4 @@ mod helpers;
// import conflict rules. If we glob export `helpers` and `common` together,
// then the compiler complains about conflicts.

use helpers::err2io;
pub use helpers::{abort_internal, decode_error_kind, is_interrupted};
pub(crate) use helpers::{abort_internal, decode_error_kind, err2io, is_interrupted};
1 change: 0 additions & 1 deletion library/std/src/sys/pal/wasip2/mod.rs
Original file line number Diff line number Diff line change
@@ -20,7 +20,6 @@ pub mod futex;
#[path = "../wasi/io.rs"]
pub mod io;

pub mod net;
#[path = "../wasi/os.rs"]
pub mod os;
#[path = "../unsupported/pipe.rs"]
2 changes: 0 additions & 2 deletions library/std/src/sys/pal/wasm/mod.rs
Original file line number Diff line number Diff line change
@@ -23,8 +23,6 @@ pub mod env;
pub mod fs;
#[path = "../unsupported/io.rs"]
pub mod io;
#[path = "../unsupported/net.rs"]
pub mod net;
#[path = "../unsupported/os.rs"]
pub mod os;
#[path = "../unsupported/pipe.rs"]
3 changes: 1 addition & 2 deletions library/std/src/sys/pal/windows/mod.rs
Original file line number Diff line number Diff line change
@@ -22,7 +22,6 @@ pub mod fs;
pub mod futex;
pub mod handle;
pub mod io;
pub mod net;
pub mod os;
pub mod pipe;
pub mod process;
@@ -63,7 +62,7 @@ pub unsafe fn init(_argc: isize, _argv: *const *const u8, _sigpipe: u8) {
// SAFETY: must be called only once during runtime cleanup.
// NOTE: this is not guaranteed to run, for example when the program aborts.
pub unsafe fn cleanup() {
net::cleanup();
crate::sys::net::cleanup();
}

#[inline]
1 change: 0 additions & 1 deletion library/std/src/sys/pal/xous/mod.rs
Original file line number Diff line number Diff line change
@@ -7,7 +7,6 @@ pub mod env;
pub mod fs;
#[path = "../unsupported/io.rs"]
pub mod io;
pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
2 changes: 0 additions & 2 deletions library/std/src/sys/pal/zkvm/mod.rs
Original file line number Diff line number Diff line change
@@ -18,8 +18,6 @@ pub mod env;
pub mod fs;
#[path = "../unsupported/io.rs"]
pub mod io;
#[path = "../unsupported/net.rs"]
pub mod net;
pub mod os;
#[path = "../unsupported/pipe.rs"]
pub mod pipe;
14 changes: 0 additions & 14 deletions library/std/src/sys_common/mod.rs
Original file line number Diff line number Diff line change
@@ -26,20 +26,6 @@ pub mod process;
pub mod wstr;
pub mod wtf8;

cfg_if::cfg_if! {
if #[cfg(any(
all(unix, not(target_os = "l4re")),
windows,
target_os = "hermit",
target_os = "solid_asp3",
all(target_os = "wasi", target_env = "p2")
))] {
pub mod net;
} else {
pub use crate::sys::net;
}
}

// common error constructors

/// A trait for viewing representations from std types
2 changes: 1 addition & 1 deletion tests/ui/inference/issue-72616.stderr
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ LL | if String::from("a") == "a".try_into().unwrap() {}
| ^^^^^^^^
|
= note: multiple `impl`s satisfying `_: TryFrom<&str>` found in the following crates: `core`, `std`:
- impl TryFrom<&str> for std::sys_common::net::LookupHost;
- impl TryFrom<&str> for std::sys::net::connection::socket::LookupHost;
- impl<T, U> TryFrom<U> for T
where U: Into<T>;
= note: required for `&str` to implement `TryInto<_>`