@@ -14,7 +14,8 @@ use uefi::{entry, Status};
1414
1515use crate :: flash:: flash;
1616use crate :: os:: error:: { Error , Result } ;
17- use crate :: os:: { TcpStream , UefiOS , PACKET_SIZE } ;
17+ use crate :: os:: net:: { TcpStream , UdpSocket , ETH_PACKET_SIZE } ;
18+ use crate :: os:: UefiOS ;
1819use crate :: reboot_to_os:: reboot_to_os;
1920use crate :: register:: register;
2021use crate :: store:: store;
@@ -33,22 +34,22 @@ mod export_cov;
3334const MIN_MEMORY : u64 = 32 << 20 ;
3435
3536async fn server_discover ( os : UefiOS ) -> Result < SocketAddrV4 > {
36- let socket = os . udp_bind ( None ) . await ?;
37+ let socket = UdpSocket :: bind ( None ) . await ?;
3738
3839 let task1 = async {
3940 let msg = postcard:: to_allocvec ( & UdpRequest :: Discover ) . unwrap ( ) ;
4041 #[ allow( unreachable_code) ]
4142 Ok :: < _ , Error > ( loop {
4243 socket
43- . send ( SocketAddrV4 :: new ( Ipv4Addr :: BROADCAST , ACTION_PORT ) , & msg)
44+ . send_to ( SocketAddrV4 :: new ( Ipv4Addr :: BROADCAST , ACTION_PORT ) , & msg)
4445 . await ?;
4546 os. sleep_us ( 1_000_000 ) . await ;
4647 } )
4748 } ;
4849
4950 let task2 = async {
50- let mut buf = [ 0 ; PACKET_SIZE ] ;
51- let ( data, server) = socket. recv ( & mut buf) . await ;
51+ let mut buf = [ 0 ; ETH_PACKET_SIZE ] ;
52+ let ( data, server) = socket. recv_from ( & mut buf) . await ;
5253 assert_eq ! ( data. len( ) , 0 ) ;
5354 Ok :: < _ , Error > ( server)
5455 } ;
@@ -75,22 +76,22 @@ async fn shutdown(os: UefiOS) -> ! {
7576
7677async fn get_action ( stream : & TcpStream ) -> Result < Action > {
7778 let msg = postcard:: to_allocvec ( & TcpRequest :: GetAction ) ?;
78- stream. send_u64_le ( msg. len ( ) as u64 ) . await ?;
79- stream. send ( & msg) . await ?;
79+ stream. write_u64_le ( msg. len ( ) as u64 ) . await ?;
80+ stream. write_all ( & msg) . await ?;
8081
81- let len = stream. recv_u64_le ( ) . await ? as usize ;
82+ let len = stream. read_u64_le ( ) . await ? as usize ;
8283 let mut buf = vec ! [ 0 ; len] ;
83- stream. recv_exact ( & mut buf) . await ?;
84+ stream. read_exact ( & mut buf) . await ?;
8485 let cmd = postcard:: from_bytes ( & buf) ?;
8586 Ok ( cmd)
8687}
8788
8889async fn complete_action ( stream : & TcpStream ) -> Result < ( ) > {
8990 let msg = postcard:: to_allocvec ( & TcpRequest :: ActionComplete ) ?;
90- stream. send_u64_le ( msg. len ( ) as u64 ) . await ?;
91- stream. send ( & msg) . await ?;
91+ stream. write_u64_le ( msg. len ( ) as u64 ) . await ?;
92+ stream. write_all ( & msg) . await ?;
9293
93- let len = stream. recv_u64_le ( ) . await ?;
94+ let len = stream. read_u64_le ( ) . await ?;
9495 assert_eq ! ( len, 0 ) ;
9596 Ok ( ( ) )
9697}
@@ -101,10 +102,10 @@ async fn run(os: UefiOS) -> Result<()> {
101102 let mut last_was_wait = false ;
102103
103104 os. spawn ( "ping" , async move {
104- let udp_socket = os . udp_bind ( None ) . await . unwrap ( ) ;
105+ let udp_socket = UdpSocket :: bind ( None ) . await . unwrap ( ) ;
105106 loop {
106107 udp_socket
107- . send ( SocketAddrV4 :: new ( * server. ip ( ) , PING_PORT ) , b"pixie" )
108+ . send_to ( SocketAddrV4 :: new ( * server. ip ( ) , PING_PORT ) , b"pixie" )
108109 . await
109110 . unwrap ( ) ;
110111 os. sleep_us ( 10_000_000 ) . await ;
@@ -119,9 +120,9 @@ async fn run(os: UefiOS) -> Result<()> {
119120 log:: debug!( "Sending request for command" ) ;
120121 }
121122
122- let tcp = os . connect ( server) . await ?;
123+ let tcp = TcpStream :: connect ( server) . await ?;
123124 let command = get_action ( & tcp) . await ;
124- tcp. close_send ( ) . await ;
125+ tcp. shutdown ( ) . await ;
125126 tcp. force_close ( ) . await ;
126127
127128 if let Err ( e) = command {
@@ -151,9 +152,9 @@ async fn run(os: UefiOS) -> Result<()> {
151152 Action :: Flash => flash ( os, server) . await ?,
152153 }
153154
154- let tcp = os . connect ( server) . await ?;
155+ let tcp = TcpStream :: connect ( server) . await ?;
155156 complete_action ( & tcp) . await ?;
156- tcp. close_send ( ) . await ;
157+ tcp. shutdown ( ) . await ;
157158 tcp. force_close ( ) . await ;
158159
159160 if command == Action :: Restart {
0 commit comments