Skip to content

Commit e1b5869

Browse files
committed
address review
1 parent 1a20458 commit e1b5869

File tree

6 files changed

+7
-26
lines changed

6 files changed

+7
-26
lines changed

src/fs/fops.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,6 @@ pub trait FileOps: Send + Sync {
138138
Err(KernelError::InvalidValue)
139139
}
140140

141-
fn is_socket(&self) -> bool {
142-
false
143-
}
144-
145141
fn as_socket(&mut self) -> Option<&mut dyn crate::socket::SocketOps> {
146142
None
147143
}

src/socket/mod.rs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ mod tcp;
44
mod unix;
55

66
use crate::drivers::timer::now;
7+
use crate::memory::uaccess::copy_from_user;
78
use crate::sync::OnceLock;
89
use crate::sync::SpinLock;
910
use alloc::vec;
@@ -22,14 +23,6 @@ fn sockets() -> &'static SpinLock<SocketSet<'static>> {
2223
}
2324

2425
// static INTERFACE: OnceLock<SpinLock<EthernetInterface<OurDevice>>> = OnceLock::new();
25-
// static DHCP_CLIENT: OnceLock<SpinLock<Dhcpv4Client>> = OnceLock::new();
26-
27-
static DHCP_ENABLED: OnceLock<bool> = OnceLock::new();
28-
29-
#[expect(dead_code)]
30-
fn dhcp_enabled() -> bool {
31-
*DHCP_ENABLED.get().unwrap()
32-
}
3326

3427
static SOCKET_WAIT_QUEUE: OnceLock<SpinLock<WakerSet>> = OnceLock::new();
3528

@@ -97,11 +90,7 @@ impl TryFrom<SockAddr> for IpEndpoint {
9790
match sockaddr {
9891
SockAddr::In(SockAddrIn { port, addr, .. }) => Ok(IpEndpoint {
9992
port: u16::from_be_bytes(port),
100-
addr: if u32::from_be_bytes(addr) == 0 {
101-
IpAddress::Ipv4(Ipv4Addr::UNSPECIFIED)
102-
} else {
103-
IpAddress::Ipv4(Ipv4Addr::from(addr))
104-
},
93+
addr: IpAddress::Ipv4(Ipv4Addr::from(addr)),
10594
}),
10695
_ => Err(KernelError::InvalidValue),
10796
}
@@ -129,7 +118,7 @@ pub fn process_packets() {
129118
socket_wait_queue().lock_save_irq().wake_all();
130119
}
131120

132-
pub fn parse_sockaddr(uaddr: UA, len: usize) -> Result<SockAddr, KernelError> {
121+
pub async fn parse_sockaddr(uaddr: UA, len: usize) -> Result<SockAddr, KernelError> {
133122
use crate::memory::uaccess::try_copy_from_user;
134123
use libkernel::memory::address::TUA;
135124

@@ -138,7 +127,7 @@ pub fn parse_sockaddr(uaddr: UA, len: usize) -> Result<SockAddr, KernelError> {
138127
return Err(KernelError::InvalidValue);
139128
}
140129

141-
let family: u16 = try_copy_from_user(TUA::from_value(uaddr.value()))?;
130+
let family: u16 = copy_from_user(TUA::from_value(uaddr.value())).await?;
142131

143132
match family as i32 {
144133
AF_INET => {

src/socket/sops.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,6 @@ where
8585
Err(KernelError::NotSupported)
8686
}
8787

88-
fn is_socket(&self) -> bool {
89-
true
90-
}
91-
9288
fn as_socket(&mut self) -> Option<&mut dyn SocketOps> {
9389
Some(self)
9490
}

src/socket/syscalls/bind.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub async fn sys_bind(fd: Fd, addr: UA, addrlen: usize) -> libkernel::error::Res
1010
.ok_or(libkernel::error::KernelError::BadFd)?;
1111

1212
let (ops, _ctx) = &mut *file.lock().await;
13-
let addr = parse_sockaddr(addr, addrlen)?;
13+
let addr = parse_sockaddr(addr, addrlen).await?;
1414

1515
ops.as_socket()
1616
.ok_or(libkernel::error::KernelError::NotASocket)?

src/socket/syscalls/connect.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub async fn sys_connect(fd: Fd, addr: UA, addrlen: usize) -> libkernel::error::
1010
.ok_or(libkernel::error::KernelError::BadFd)?;
1111

1212
let (ops, _ctx) = &mut *file.lock().await;
13-
let addr = parse_sockaddr(addr, addrlen)?;
13+
let addr = parse_sockaddr(addr, addrlen).await?;
1414

1515
ops.as_socket()
1616
.ok_or(libkernel::error::KernelError::NotASocket)?

src/socket/tcp.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ impl TcpSocket {
5858
None => return Err(KernelError::InvalidValue),
5959
};
6060

61-
for _ in 0..(self.num_backlogs.load(Ordering::SeqCst) - backlogs.len()) {
61+
for _ in 0..(self.num_backlogs.load(Ordering::Relaxed) - backlogs.len()) {
6262
let socket = TcpSocket::new();
6363
sockets()
6464
.lock_save_irq()

0 commit comments

Comments
 (0)