@@ -102,7 +102,7 @@ impl Stream for ProxyAddrsStream {
102102}
103103
104104/// A SOCKS connection target.
105- #[ derive( Debug , PartialEq , Eq ) ]
105+ #[ derive( Debug , PartialEq , Eq , Clone ) ]
106106pub enum TargetAddr < ' a > {
107107 /// Connect to an IP address.
108108 Ip ( SocketAddr ) ,
@@ -292,6 +292,22 @@ mod tests {
292292 Ok ( block_on ( t. to_proxy_addrs ( ) . map ( Result :: unwrap) . collect ( ) ) )
293293 }
294294
295+ #[ test]
296+ fn test_clone_ip ( ) {
297+ let addr = TargetAddr :: Ip ( SocketAddr :: new ( IpAddr :: V4 ( Ipv4Addr :: new ( 127 , 0 , 0 , 1 ) ) , 8080 ) ) ;
298+ let addr_clone = addr. clone ( ) ;
299+ assert_eq ! ( addr, addr_clone) ;
300+ assert_eq ! ( addr. to_string( ) , addr_clone. to_string( ) ) ;
301+ }
302+
303+ #[ test]
304+ fn test_clone_domain ( ) {
305+ let addr = TargetAddr :: Domain ( Cow :: Borrowed ( "example.com" ) , 80 ) ;
306+ let addr_clone = addr. clone ( ) ;
307+ assert_eq ! ( addr, addr_clone) ;
308+ assert_eq ! ( addr. to_string( ) , addr_clone. to_string( ) ) ;
309+ }
310+
295311 #[ test]
296312 fn test_display_ip ( ) {
297313 let addr = TargetAddr :: Ip ( SocketAddr :: new ( IpAddr :: V4 ( Ipv4Addr :: new ( 127 , 0 , 0 , 1 ) ) , 8080 ) ) ;
0 commit comments