@@ -187,19 +187,17 @@ object ReconnectionTask {
187
187
// @formatter:on
188
188
189
189
def selectNodeAddress (nodeParams : NodeParams , nodeAddresses : Seq [NodeAddress ]): Option [NodeAddress ] = {
190
- // it doesn't make sense to mix tor and clearnet addresses, so we separate them and decide whether we use one or the other
191
190
val torAddresses = nodeAddresses.collect { case o : OnionAddress => o }
192
191
val clearnetAddresses = nodeAddresses diff torAddresses
193
192
val selectedAddresses = nodeParams.socksProxy_opt match {
194
- case Some (params) if clearnetAddresses.nonEmpty && params.useForTor && (! params.useForIPv4 || ! params.useForIPv6) =>
195
- // Remote has clearnet (and possibly tor addresses), and we support tor, but we have configured it to only use
196
- // tor when strictly necessary. In this case we will only connect over clearnet.
193
+ case Some (socksProxy) if ! socksProxy.useForTor =>
194
+ // Tor is enabled, but tor addresses are not supported, we use clearnet
197
195
clearnetAddresses
198
- case Some (params) if torAddresses.nonEmpty && params.useForTor =>
199
- // In all other cases, if they have a tor address and we support tor, we use tor .
200
- torAddresses
201
- case _ =>
202
- // Otherwise, if we don't support tor or they don't have a tor address , we use clearnet.
196
+ case Some (_) =>
197
+ // Tor is enabled, so we can connect to any type of addresses .
198
+ nodeAddresses
199
+ case None =>
200
+ // Otherwise, if we don't support tor, we use clearnet.
203
201
clearnetAddresses
204
202
}
205
203
// finally, we pick an address at random
0 commit comments