From 118438f70ae5d6196ec6bde9ffc890862cc8d05f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=88=CE=BB=CE=BB=CE=B5=CE=BD=20=CE=95=CE=BC=CE=AF=CE=BB?= =?UTF-8?q?=CE=B9=CE=B1=20=CE=86=CE=BD=CE=BD=CE=B1=20Zscheile?= Date: Thu, 25 Jun 2026 15:31:42 +0200 Subject: [PATCH] refactor(fd/socket/udp): Flatten deeply nested if chains by reordering --- src/fd/socket/udp.rs | 60 +++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/src/fd/socket/udp.rs b/src/fd/socket/udp.rs index 9611edf180..5541067a43 100644 --- a/src/fd/socket/udp.rs +++ b/src/fd/socket/udp.rs @@ -157,25 +157,23 @@ impl ObjectInterface for Socket { async fn recvfrom(&self, buf: &mut [u8]) -> io::Result<(usize, Endpoint)> { future::poll_fn(|cx| { self.with(|socket| { - if socket.is_open() { - if socket.can_recv() { - match socket.recv_slice(buf) { - Ok((len, meta)) => { - if self.remote_endpoint.is_none_or(|ep| ep == meta.endpoint) { - Poll::Ready(Ok((len, meta.endpoint))) - } else { - socket.register_recv_waker(cx.waker()); - Poll::Pending - } + if !socket.is_open() { + Poll::Ready(Err(Errno::Io)) + } else if !socket.can_recv() { + socket.register_recv_waker(cx.waker()); + Poll::Pending + } else { + match socket.recv_slice(buf) { + Ok((len, meta)) => { + if self.remote_endpoint.is_none_or(|ep| ep == meta.endpoint) { + Poll::Ready(Ok((len, meta.endpoint))) + } else { + socket.register_recv_waker(cx.waker()); + Poll::Pending } - _ => Poll::Ready(Err(Errno::Io)), } - } else { - socket.register_recv_waker(cx.waker()); - Poll::Pending + _ => Poll::Ready(Err(Errno::Io)), } - } else { - Poll::Ready(Err(Errno::Io)) } }) }) @@ -186,25 +184,23 @@ impl ObjectInterface for Socket { async fn read(&self, buf: &mut [u8]) -> io::Result { future::poll_fn(|cx| { self.with(|socket| { - if socket.is_open() { - if socket.can_recv() { - match socket.recv_slice(buf) { - Ok((len, meta)) => { - if self.remote_endpoint.is_none_or(|ep| ep == meta.endpoint) { - Poll::Ready(Ok(len)) - } else { - socket.register_recv_waker(cx.waker()); - Poll::Pending - } + if !socket.is_open() { + Poll::Ready(Err(Errno::Io)) + } else if !socket.can_recv() { + socket.register_recv_waker(cx.waker()); + Poll::Pending + } else { + match socket.recv_slice(buf) { + Ok((len, meta)) => { + if self.remote_endpoint.is_none_or(|ep| ep == meta.endpoint) { + Poll::Ready(Ok(len)) + } else { + socket.register_recv_waker(cx.waker()); + Poll::Pending } - _ => Poll::Ready(Err(Errno::Io)), } - } else { - socket.register_recv_waker(cx.waker()); - Poll::Pending + _ => Poll::Ready(Err(Errno::Io)), } - } else { - Poll::Ready(Err(Errno::Io)) } }) })