From d3cd65266b1f742d43c05cd6dea2acc3838f1cd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9F=D0=B0=D1=86?= =?UTF-8?q?=D0=B0=D0=BA=D1=83=D0=BB=D0=B0?= Date: Sun, 9 Jul 2023 20:38:31 +0300 Subject: [PATCH] [*] Deps updated: io-uring, socket2. --- Cargo.toml | 4 ++-- src/io/accept.rs | 2 +- src/io/fallocate.rs | 4 ++-- src/io/recv_from.rs | 2 +- src/io/recvmsg.rs | 2 +- src/io/socket.rs | 7 +++++++ src/io/writev_all.rs | 2 +- src/runtime/driver/mod.rs | 8 +++++--- 8 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 9b707e80..3a708ce8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,8 +20,8 @@ keywords = ["async", "fs", "io-uring"] tokio = { version = "1.2", features = ["net", "rt", "sync"] } slab = "0.4.2" libc = "0.2.80" -io-uring = "0.5.13" -socket2 = { version = "0.4.4", features = ["all"] } +io-uring = "0.6.0" +socket2 = { version = "0.5.3", features = ["all"] } bytes = { version = "1.0", optional = true } futures-util = { version = "0.3.26", default-features = false, features = ["std"] } diff --git a/src/io/accept.rs b/src/io/accept.rs index 17f8f88f..960cce06 100644 --- a/src/io/accept.rs +++ b/src/io/accept.rs @@ -46,7 +46,7 @@ impl Completable for Accept { let fd = SharedFd::new(fd as i32); let socket = Socket { fd }; let (_, addr) = unsafe { - socket2::SockAddr::init(move |addr_storage, len| { + socket2::SockAddr::try_init(move |addr_storage, len| { *addr_storage = self.socketaddr.0.to_owned(); *len = self.socketaddr.1; Ok(()) diff --git a/src/io/fallocate.rs b/src/io/fallocate.rs index fa932124..4a9c430e 100644 --- a/src/io/fallocate.rs +++ b/src/io/fallocate.rs @@ -25,8 +25,8 @@ impl Op { x.handle().expect("not in a runtime context").submit_op( Fallocate { fd: fd.clone() }, |fallocate| { - opcode::Fallocate64::new(types::Fd(fallocate.fd.raw_fd()), len as _) - .offset64(offset as _) + opcode::Fallocate::new(types::Fd(fallocate.fd.raw_fd()), len as _) + .offset(offset) .mode(flags) .build() }, diff --git a/src/io/recv_from.rs b/src/io/recv_from.rs index e9b360ca..e20ff2bf 100644 --- a/src/io/recv_from.rs +++ b/src/io/recv_from.rs @@ -24,7 +24,7 @@ impl Op> { std::slice::from_raw_parts_mut(buf.stable_mut_ptr(), buf.bytes_total()) })]; - let socket_addr = Box::new(unsafe { SockAddr::init(|_, _| Ok(()))?.1 }); + let socket_addr = Box::new(unsafe { SockAddr::try_init(|_, _| Ok(()))?.1 }); let mut msghdr: Box = Box::new(unsafe { std::mem::zeroed() }); msghdr.msg_iov = io_slices.as_mut_ptr().cast(); diff --git a/src/io/recvmsg.rs b/src/io/recvmsg.rs index 3cae2e50..db2c6e7e 100644 --- a/src/io/recvmsg.rs +++ b/src/io/recvmsg.rs @@ -28,7 +28,7 @@ impl Op> { })); } - let socket_addr = Box::new(unsafe { SockAddr::init(|_, _| Ok(()))?.1 }); + let socket_addr = Box::new(unsafe { SockAddr::try_init(|_, _| Ok(()))?.1 }); let mut msghdr: Box = Box::new(unsafe { std::mem::zeroed() }); msghdr.msg_iov = io_slices.as_mut_ptr().cast(); diff --git a/src/io/socket.rs b/src/io/socket.rs index dda1bb36..f955e185 100644 --- a/src/io/socket.rs +++ b/src/io/socket.rs @@ -6,6 +6,7 @@ use crate::{ io::SharedFd, UnsubmittedOneshot, }; +use std::os::fd::{AsFd, BorrowedFd}; use std::{ io, net::SocketAddr, @@ -280,6 +281,12 @@ impl Socket { } } +impl AsFd for Socket { + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.fd.raw_fd()) } + } +} + impl AsRawFd for Socket { fn as_raw_fd(&self) -> RawFd { self.fd.raw_fd() diff --git a/src/io/writev_all.rs b/src/io/writev_all.rs index 38ee8a63..6b32b847 100644 --- a/src/io/writev_all.rs +++ b/src/io/writev_all.rs @@ -134,7 +134,7 @@ impl Op> { // So this wouldn't need to be a function. Just pass in the entry. |write| { opcode::Writev::new(types::Fd(write.fd.raw_fd()), iovs_ptr, iovs_len) - .offset64(offset as _) + .offset(offset) .build() }, ) diff --git a/src/runtime/driver/mod.rs b/src/runtime/driver/mod.rs index 21d7de0b..43375d85 100644 --- a/src/runtime/driver/mod.rs +++ b/src/runtime/driver/mod.rs @@ -97,9 +97,11 @@ impl Driver { &mut self, buffers: Rc>, ) -> io::Result<()> { - self.uring - .submitter() - .register_buffers(buffers.borrow().iovecs())?; + unsafe { + self.uring + .submitter() + .register_buffers(buffers.borrow().iovecs())?; + } self.fixed_buffers = Some(buffers); Ok(())