Skip to content

Commit 997dc58

Browse files
committed
adapt L4Re network interface mock to rust-lang#87329
Copy the relevant trait implementations from the Unix default.
1 parent c0dc41f commit 997dc58

File tree

1 file changed

+34
-9
lines changed

1 file changed

+34
-9
lines changed

library/std/src/sys/unix/l4re.rs

+34-9
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ pub mod net {
1313
use crate::fmt;
1414
use crate::io::{self, IoSlice, IoSliceMut};
1515
use crate::net::{Ipv4Addr, Ipv6Addr, Shutdown, SocketAddr};
16+
use crate::os::unix::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, RawFd};
1617
use crate::sys::fd::FileDesc;
1718
use crate::sys_common::{AsInner, FromInner, IntoInner};
1819
use crate::time::Duration;
@@ -123,21 +124,45 @@ pub mod net {
123124
}
124125
}
125126

126-
impl AsInner<libc::c_int> for Socket {
127-
fn as_inner(&self) -> &libc::c_int {
128-
self.0.as_inner()
127+
impl AsInner<FileDesc> for Socket {
128+
fn as_inner(&self) -> &FileDesc {
129+
&self.0
129130
}
130131
}
131132

132-
impl FromInner<libc::c_int> for Socket {
133-
fn from_inner(fd: libc::c_int) -> Socket {
134-
Socket(FileDesc::new(fd))
133+
impl FromInner<FileDesc> for Socket {
134+
fn from_inner(file_desc: FileDesc) -> Socket {
135+
Socket(file_desc)
135136
}
136137
}
137138

138-
impl IntoInner<libc::c_int> for Socket {
139-
fn into_inner(self) -> libc::c_int {
140-
self.0.into_raw()
139+
impl IntoInner<FileDesc> for Socket {
140+
fn into_inner(self) -> FileDesc {
141+
self.0
142+
}
143+
}
144+
145+
impl AsFd for Socket {
146+
fn as_fd(&self) -> BorrowedFd<'_> {
147+
self.0.as_fd()
148+
}
149+
}
150+
151+
impl AsRawFd for Socket {
152+
fn as_raw_fd(&self) -> RawFd {
153+
self.0.as_raw_fd()
154+
}
155+
}
156+
157+
impl IntoRawFd for Socket {
158+
fn into_raw_fd(self) -> RawFd {
159+
self.0.into_raw_fd()
160+
}
161+
}
162+
163+
impl FromRawFd for Socket {
164+
unsafe fn from_raw_fd(raw_fd: RawFd) -> Self {
165+
Self(FromRawFd::from_raw_fd(raw_fd))
141166
}
142167
}
143168

0 commit comments

Comments
 (0)