44mod unix;
55
66use crate :: drivers:: timer:: now;
7+ use crate :: memory:: uaccess:: copy_from_user;
78use crate :: sync:: OnceLock ;
89use crate :: sync:: SpinLock ;
910use 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
3427static 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 => {
0 commit comments