@@ -1115,11 +1115,23 @@ mod tests {
11151115 async fn test_tor_connect ( ) {
11161116 use super :: tor_connect;
11171117 use lightning:: sign:: EntropySource ;
1118- use std:: net:: SocketAddr ;
1118+ use std:: net:: { SocketAddr , ToSocketAddrs } ;
11191119
11201120 // Set TOR_PROXY=127.0.0.1:9050
11211121 let tor_proxy_addr: SocketAddr = std:: env!( "TOR_PROXY" ) . parse ( ) . unwrap ( ) ;
11221122
1123+ let mut google_addresses: Vec < _ > = "google.com:80" . to_socket_addrs ( ) . unwrap ( ) . collect ( ) ;
1124+ let ipv6_pos = google_addresses
1125+ . iter ( )
1126+ . position ( |a| a. is_ipv6 ( ) )
1127+ . expect ( "must resolve at least one ipv6 address" ) ;
1128+ let mut google_ipv6 = google_addresses. remove ( ipv6_pos) ;
1129+ let ipv4_pos = google_addresses
1130+ . iter ( )
1131+ . position ( |a| a. is_ipv4 ( ) )
1132+ . expect ( "must resolve at least one ipv4 address" ) ;
1133+ let mut google_ipv4 = google_addresses. remove ( ipv4_pos) ;
1134+
11231135 struct TestEntropySource ;
11241136
11251137 impl EntropySource for TestEntropySource {
@@ -1132,17 +1144,16 @@ mod tests {
11321144
11331145 // Success cases
11341146
1135- for addr_str in [
1147+ for addr in [
11361148 // google.com
1137- "142.250.189.196:80" ,
1149+ google_ipv4 . into ( ) ,
11381150 // google.com
1139- "[2607:f8b0:4005:813::2004]:80" ,
1151+ google_ipv6 . into ( ) ,
11401152 // torproject.org
1141- "torproject.org:80" ,
1153+ "torproject.org:80" . parse ( ) . unwrap ( ) ,
11421154 // torproject.org
1143- "2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" ,
1155+ "2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" . parse ( ) . unwrap ( ) ,
11441156 ] {
1145- let addr: SocketAddress = addr_str. parse ( ) . unwrap ( ) ;
11461157 let tcp_stream = tor_connect ( addr, tor_proxy_addr, & entropy_source) . await . unwrap ( ) ;
11471158 assert_eq ! (
11481159 tcp_stream. try_read( & mut [ 0u8 ; 1 ] ) . unwrap_err( ) . kind( ) ,
@@ -1151,18 +1162,19 @@ mod tests {
11511162 }
11521163
11531164 // Failure cases
1165+ google_ipv4. set_port ( 1234 ) ;
1166+ google_ipv6. set_port ( 1234 ) ;
11541167
1155- for addr_str in [
1168+ for addr in [
11561169 // google.com, with some invalid port
1157- "142.250.189.196:1234" ,
1170+ google_ipv4 . into ( ) ,
11581171 // google.com, with some invalid port
1159- "[2607:f8b0:4005:813::2004]:1234" ,
1172+ google_ipv6 . into ( ) ,
11601173 // torproject.org, with some invalid port
1161- "torproject.org:1234" ,
1174+ "torproject.org:1234" . parse ( ) . unwrap ( ) ,
11621175 // torproject.org, with a typo
1163- "3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" ,
1176+ "3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" . parse ( ) . unwrap ( ) ,
11641177 ] {
1165- let addr: SocketAddress = addr_str. parse ( ) . unwrap ( ) ;
11661178 assert ! ( tor_connect( addr, tor_proxy_addr, & entropy_source) . await . is_err( ) ) ;
11671179 }
11681180 }
0 commit comments