@@ -1115,11 +1115,17 @@ 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. iter ( ) . position ( |a| a. is_ipv6 ( ) ) . expect ( "must resolve at least one ipv6 address" ) ;
1125+ let mut google_ipv6 = google_addresses. remove ( ipv6_pos) ;
1126+ let ipv4_pos = google_addresses. iter ( ) . position ( |a| a. is_ipv4 ( ) ) . expect ( "must resolve at least one ipv4 address" ) ;
1127+ let mut google_ipv4 = google_addresses. remove ( ipv4_pos) ;
1128+
11231129 struct TestEntropySource ;
11241130
11251131 impl EntropySource for TestEntropySource {
@@ -1132,17 +1138,16 @@ mod tests {
11321138
11331139 // Success cases
11341140
1135- for addr_str in [
1141+ for addr in [
11361142 // google.com
1137- "142.250.189.196:80" ,
1143+ google_ipv4 . into ( ) ,
11381144 // google.com
1139- "[2607:f8b0:4005:813::2004]:80" ,
1145+ google_ipv6 . into ( ) ,
11401146 // torproject.org
1141- "torproject.org:80" ,
1147+ "torproject.org:80" . parse ( ) . unwrap ( ) ,
11421148 // torproject.org
1143- "2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" ,
1149+ "2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" . parse ( ) . unwrap ( ) ,
11441150 ] {
1145- let addr: SocketAddress = addr_str. parse ( ) . unwrap ( ) ;
11461151 let tcp_stream = tor_connect ( addr, tor_proxy_addr, & entropy_source) . await . unwrap ( ) ;
11471152 assert_eq ! (
11481153 tcp_stream. try_read( & mut [ 0u8 ; 1 ] ) . unwrap_err( ) . kind( ) ,
@@ -1151,18 +1156,19 @@ mod tests {
11511156 }
11521157
11531158 // Failure cases
1159+ google_ipv4. set_port ( 1234 ) ;
1160+ google_ipv6. set_port ( 1234 ) ;
11541161
1155- for addr_str in [
1162+ for addr in [
11561163 // google.com, with some invalid port
1157- "142.250.189.196:1234" ,
1164+ google_ipv4 . into ( ) ,
11581165 // google.com, with some invalid port
1159- "[2607:f8b0:4005:813::2004]:1234" ,
1166+ google_ipv6 . into ( ) ,
11601167 // torproject.org, with some invalid port
1161- "torproject.org:1234" ,
1168+ "torproject.org:1234" . parse ( ) . unwrap ( ) ,
11621169 // torproject.org, with a typo
1163- "3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" ,
1170+ "3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" . parse ( ) . unwrap ( ) ,
11641171 ] {
1165- let addr: SocketAddress = addr_str. parse ( ) . unwrap ( ) ;
11661172 assert ! ( tor_connect( addr, tor_proxy_addr, & entropy_source) . await . is_err( ) ) ;
11671173 }
11681174 }
0 commit comments