11use std:: io:: ErrorKind ;
22use std:: net:: { SocketAddr , ToSocketAddrs } ;
33
4- #[ cfg( target_env = "p2" ) ]
54use wasip2:: {
65 io:: streams:: { InputStream , OutputStream } ,
76 sockets:: {
@@ -11,16 +10,8 @@ use wasip2::{
1110 } ,
1211} ;
1312
14- #[ cfg( target_env = "p3" ) ]
15- use wasip3:: sockets:: types:: { IpAddressFamily , IpSocketAddress , Ipv4SocketAddress , TcpSocket } ;
16- #[ cfg( target_env = "p3" ) ]
17- type InputStream = wasip3:: wit_bindgen:: StreamReader < u8 > ;
18- #[ cfg( target_env = "p3" ) ]
19- type OutputStream = wasip3:: wit_bindgen:: StreamWriter < u8 > ;
20-
21- use super :: { create_tcp_socket, to_io_err} ;
2213use crate :: io:: { self , AsyncInputStream , AsyncOutputStream } ;
23- # [ cfg ( target_env = "p2" ) ]
14+ use crate :: net :: { create_tcp_socket , to_io_err } ;
2415use crate :: runtime:: AsyncPollable ;
2516
2617/// A TCP stream between a local and a remote socket.
@@ -79,53 +70,36 @@ impl TcpStream {
7970 }
8071 SocketAddr :: V6 ( _) => todo ! ( "IPv6 not yet supported in `wstd::net::TcpStream`" ) ,
8172 } ;
82- #[ cfg( target_env = "p2" ) ]
83- {
84- let network = instance_network ( ) ;
85- socket
86- . start_connect ( & network, remote_address)
87- . map_err ( to_io_err) ?;
88- let pollable = AsyncPollable :: new ( socket. subscribe ( ) ) ;
89- pollable. wait_for ( ) . await ;
90- let ( input, output) = socket. finish_connect ( ) . map_err ( to_io_err) ?;
91- Ok ( TcpStream :: new ( input, output, socket) )
92- }
93- #[ cfg( target_env = "p3" ) ]
94- {
95- socket. connect ( remote_address) . await . map_err ( to_io_err) ?;
96- let ( input, _receive_result) = socket. receive ( ) ;
97- let ( output, receiver) = wasip3:: wit_stream:: new ( ) ;
98- let _send_result = socket. send ( receiver) ;
99- Ok ( TcpStream :: new ( input, output, socket) )
100- }
73+ let network = instance_network ( ) ;
74+ socket
75+ . start_connect ( & network, remote_address)
76+ . map_err ( to_io_err) ?;
77+ let pollable = AsyncPollable :: new ( socket. subscribe ( ) ) ;
78+ pollable. wait_for ( ) . await ;
79+ let ( input, output) = socket. finish_connect ( ) . map_err ( to_io_err) ?;
80+ Ok ( TcpStream :: new ( input, output, socket) )
10181 }
10282
10383 /// Returns the socket address of the remote peer of this TCP connection.
10484 pub fn peer_addr ( & self ) -> io:: Result < String > {
105- #[ cfg( target_env = "p2" ) ]
10685 let addr = self . socket . remote_address ( ) . map_err ( to_io_err) ?;
107- #[ cfg( target_env = "p3" ) ]
108- let addr = self . socket . get_remote_address ( ) . map_err ( to_io_err) ?;
10986 Ok ( format ! ( "{addr:?}" ) )
11087 }
11188
11289 pub fn split ( & mut self ) -> ( ReadHalf < ' _ > , WriteHalf < ' _ > ) {
11390 (
11491 ReadHalf {
11592 stream : & mut self . input ,
116- #[ cfg( target_env = "p2" ) ]
11793 socket : & self . socket ,
11894 } ,
11995 WriteHalf {
12096 stream : & mut self . output ,
121- #[ cfg( target_env = "p2" ) ]
12297 socket : & self . socket ,
12398 } ,
12499 )
125100 }
126101}
127102
128- #[ cfg( target_env = "p2" ) ]
129103impl Drop for TcpStream {
130104 fn drop ( & mut self ) {
131105 let _ = self
@@ -160,11 +134,9 @@ impl io::AsyncWrite for TcpStream {
160134
161135pub struct ReadHalf < ' a > {
162136 stream : & ' a mut AsyncInputStream ,
163- #[ cfg( target_env = "p2" ) ]
164137 socket : & ' a TcpSocket ,
165138}
166139
167- #[ cfg( target_env = "p2" ) ]
168140impl < ' a > Drop for ReadHalf < ' a > {
169141 fn drop ( & mut self ) {
170142 let _ = self
@@ -185,7 +157,6 @@ impl<'a> io::AsyncRead for ReadHalf<'a> {
185157
186158pub struct WriteHalf < ' a > {
187159 stream : & ' a mut AsyncOutputStream ,
188- #[ cfg( target_env = "p2" ) ]
189160 socket : & ' a TcpSocket ,
190161}
191162
@@ -203,7 +174,6 @@ impl<'a> io::AsyncWrite for WriteHalf<'a> {
203174 }
204175}
205176
206- #[ cfg( target_env = "p2" ) ]
207177impl < ' a > Drop for WriteHalf < ' a > {
208178 fn drop ( & mut self ) {
209179 let _ = self
0 commit comments