@@ -9,15 +9,18 @@ use byteorder::{BigEndian, WriteBytesExt};
99use monoio:: {
1010 buf:: IoBufMut ,
1111 io:: { AsyncReadRent , AsyncReadRentExt , AsyncWriteRent , AsyncWriteRentExt , Splitable } ,
12- net:: { TcpListener , TcpStream } ,
12+ net:: TcpStream ,
1313} ;
1414use monoio_rustls_fork_shadow_tls:: TlsConnector ;
1515use rand:: { prelude:: Distribution , seq:: SliceRandom , Rng } ;
1616use rustls_fork_shadow_tls:: { OwnedTrustAnchor , RootCertStore , ServerName } ;
1717
1818use crate :: {
1919 helper_v2:: { copy_with_application_data, copy_without_application_data, HashedReadStream } ,
20- util:: { kdf, mod_tcp_conn, prelude:: * , verified_relay, xor_slice, Hmac , V3Mode } ,
20+ util:: {
21+ bind_with_pretty_error, kdf, mod_tcp_conn, prelude:: * , verified_relay, xor_slice, Hmac ,
22+ V3Mode ,
23+ } ,
2124} ;
2225
2326const FAKE_REQUEST_LENGTH_RANGE : ( usize , usize ) = ( 16 , 64 ) ;
@@ -156,8 +159,7 @@ impl<LA, TA> ShadowTlsClient<LA, TA> {
156159 LA : std:: net:: ToSocketAddrs + ' static ,
157160 TA : std:: net:: ToSocketAddrs + ' static ,
158161 {
159- let listener = TcpListener :: bind ( self . listen_addr . as_ref ( ) )
160- . map_err ( |e| anyhow:: anyhow!( "bind failed, check if the port is used: {e}" ) ) ?;
162+ let listener = bind_with_pretty_error ( self . listen_addr . as_ref ( ) ) ?;
161163 let shared = Rc :: new ( self ) ;
162164 loop {
163165 match listener. accept ( ) . await {
0 commit comments