From 251e1bca41a573bd2bcb207857456f2a1a771cdd Mon Sep 17 00:00:00 2001 From: Samuka007 Date: Thu, 17 Oct 2024 06:39:49 +0000 Subject: [PATCH] =?UTF-8?q?todo:=20socket=20close=20=E5=8F=8A=20port=20?= =?UTF-8?q?=E6=8E=A5=E8=A7=A6=E5=8D=A0=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/net/socket/inet/stream/mod.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/kernel/src/net/socket/inet/stream/mod.rs b/kernel/src/net/socket/inet/stream/mod.rs index 19e4be15..ee4279ac 100644 --- a/kernel/src/net/socket/inet/stream/mod.rs +++ b/kernel/src/net/socket/inet/stream/mod.rs @@ -303,18 +303,17 @@ impl Socket for TcpSocket { } fn close(&self) -> Result<(), SystemError> { - match self.inner.read().as_ref().expect("Tcp Inner is None") { - Inner::Init(_) => {} - Inner::Connecting(_) => { - return Err(EINPROGRESS); + self.inner.read().as_ref().map( + |inner| match inner { + Inner::Connecting(_) => Err(EINPROGRESS), + Inner::Established(es) => { + es.close(); + es.release(); + Ok(()) + } + _ => Ok(()), } - Inner::Established(es) => { - es.close(); - es.release(); - } - Inner::Listening(_) => {} - } - Ok(()) + ).unwrap_or(Ok(())) } }