kmc-solid: Replace {From,Into}Inner<c_int> impls with *RawFd for Socket

Follows how other targets are implemented.
This commit is contained in:
Tomoaki Kawada 2023-08-23 19:07:18 +09:00
parent 0dd3b25e2d
commit cbfab81f3d
2 changed files with 16 additions and 20 deletions

View File

@ -378,7 +378,7 @@ macro_rules! impl_as_raw_fd {
impl AsRawFd for net::$t { impl AsRawFd for net::$t {
#[inline] #[inline]
fn as_raw_fd(&self) -> RawFd { fn as_raw_fd(&self) -> RawFd {
*self.as_inner().socket().as_inner() self.as_inner().socket().as_raw_fd()
} }
} }
)*}; )*};
@ -391,7 +391,7 @@ macro_rules! impl_from_raw_fd {
impl FromRawFd for net::$t { impl FromRawFd for net::$t {
#[inline] #[inline]
unsafe fn from_raw_fd(fd: RawFd) -> net::$t { unsafe fn from_raw_fd(fd: RawFd) -> net::$t {
let socket = sys::net::Socket::from_inner(fd); 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_common::net::$t::from_inner(socket))
} }
} }
@ -405,7 +405,7 @@ macro_rules! impl_into_raw_fd {
impl IntoRawFd for net::$t { impl IntoRawFd for net::$t {
#[inline] #[inline]
fn into_raw_fd(self) -> RawFd { fn into_raw_fd(self) -> RawFd {
self.into_inner().into_socket().into_inner() self.into_inner().into_socket().into_raw_fd()
} }
} }
)*}; )*};

View File

@ -5,9 +5,10 @@ use crate::{
io::{self, BorrowedBuf, BorrowedCursor, ErrorKind, IoSlice, IoSliceMut}, io::{self, BorrowedBuf, BorrowedCursor, ErrorKind, IoSlice, IoSliceMut},
mem, mem,
net::{Shutdown, SocketAddr}, net::{Shutdown, SocketAddr},
os::solid::io::{AsRawFd, FromRawFd, IntoRawFd},
ptr, str, ptr, str,
sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr}, sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr},
sys_common::{AsInner, FromInner, IntoInner}, sys_common::IntoInner,
time::Duration, time::Duration,
}; };
@ -111,13 +112,6 @@ impl FileDesc {
} }
} }
impl AsInner<c_int> for FileDesc {
#[inline]
fn as_inner(&self) -> &c_int {
&self.fd
}
}
impl Drop for FileDesc { impl Drop for FileDesc {
fn drop(&mut self) { fn drop(&mut self) {
unsafe { netc::close(self.fd) }; unsafe { netc::close(self.fd) };
@ -454,7 +448,7 @@ impl Socket {
pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> { pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
let mut nonblocking = nonblocking as c_int; let mut nonblocking = nonblocking as c_int;
cvt(unsafe { cvt(unsafe {
netc::ioctl(*self.as_inner(), netc::FIONBIO, (&mut nonblocking) as *mut c_int as _) netc::ioctl(self.0.raw(), netc::FIONBIO, (&mut nonblocking) as *mut c_int as _)
}) })
.map(drop) .map(drop)
} }
@ -466,25 +460,27 @@ impl Socket {
// This method is used by sys_common code to abstract over targets. // This method is used by sys_common code to abstract over targets.
pub fn as_raw(&self) -> c_int { pub fn as_raw(&self) -> c_int {
*self.as_inner() self.0.raw()
} }
} }
impl AsInner<c_int> for Socket { impl AsRawFd for Socket {
#[inline] #[inline]
fn as_inner(&self) -> &c_int { fn as_raw_fd(&self) -> c_int {
self.0.as_inner() self.0.fd
} }
} }
impl FromInner<c_int> for Socket { impl FromRawFd for Socket {
fn from_inner(fd: c_int) -> Socket { #[inline]
unsafe fn from_raw_fd(fd: c_int) -> Socket {
Socket(FileDesc::new(fd)) Socket(FileDesc::new(fd))
} }
} }
impl IntoInner<c_int> for Socket { impl IntoRawFd for Socket {
fn into_inner(self) -> c_int { #[inline]
fn into_raw_fd(self) -> c_int {
self.0.into_raw() self.0.into_raw()
} }
} }