aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs
index 549788b..4c27d26 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -88,13 +88,11 @@ fn main() -> Result<()> {
loop {
let mut buf = [MaybeUninit::new(0); BUFSIZE];
let (n, remote) = sock.recv_from(&mut buf)?;
- let buf = &buf
- .iter()
- .take(n)
- .map(|p| unsafe { p.assume_init() })
- .collect::<Vec<u8>>();
- let remote = remote.as_socket_ipv6().unwrap();
+ // See unstable `MaybeUninit::slice_assume_init_ref`.
+ let buf = unsafe { &*(&buf as *const [MaybeUninit<u8>] as *const [u8]) };
+
+ let buf = &buf[..n];
}
}