1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
Index: tokio-uring/Cargo.toml
===================================================================
--- tokio-uring.orig/Cargo.toml
+++ tokio-uring/Cargo.toml
@@ -58,11 +58,11 @@ version = "0.2.80"
version = "0.4.2"
[dependencies.socket2]
-version = "0.4.4"
+version = "0.5"
features = ["all"]
[dependencies.tokio]
-version = "1.2"
+version = "1.30"
features = [
"net",
"rt",
@@ -82,7 +82,7 @@ version = "0.26.1"
version = "3.2.0"
[dev-dependencies.tokio]
-version = "1.21.2"
+version = "1.30"
[dev-dependencies.tokio-test]
version = "0.4.2"
Index: tokio-uring/src/io/accept.rs
===================================================================
--- tokio-uring.orig/src/io/accept.rs
+++ tokio-uring/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| {
self.socketaddr.0.clone_into(&mut *addr_storage);
*len = self.socketaddr.1;
Ok(())
Index: tokio-uring/src/io/recv_from.rs
===================================================================
--- tokio-uring.orig/src/io/recv_from.rs
+++ tokio-uring/src/io/recv_from.rs
@@ -24,7 +24,7 @@ impl<T: BoundedBufMut> Op<RecvFrom<T>> {
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<libc::msghdr> = Box::new(unsafe { std::mem::zeroed() });
msghdr.msg_iov = io_slices.as_mut_ptr().cast();
Index: tokio-uring/src/io/recvmsg.rs
===================================================================
--- tokio-uring.orig/src/io/recvmsg.rs
+++ tokio-uring/src/io/recvmsg.rs
@@ -28,7 +28,7 @@ impl<T: BoundedBufMut> Op<RecvMsg<T>> {
}));
}
- 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<libc::msghdr> = Box::new(unsafe { std::mem::zeroed() });
msghdr.msg_iov = io_slices.as_mut_ptr().cast();
Index: tokio-uring/src/io/socket.rs
===================================================================
--- tokio-uring.orig/src/io/socket.rs
+++ tokio-uring/src/io/socket.rs
@@ -10,6 +10,7 @@ use std::{
io,
net::SocketAddr,
os::unix::io::{AsRawFd, IntoRawFd, RawFd},
+ os::fd::{AsFd, BorrowedFd},
path::Path,
};
@@ -285,3 +286,12 @@ impl AsRawFd for Socket {
self.fd.raw_fd()
}
}
+
+impl AsFd for Socket {
+ fn as_fd(&self) -> BorrowedFd {
+ unsafe {
+ BorrowedFd::borrow_raw(self.fd.raw_fd())
+ }
+ }
+}
+
|