Revert "direct bind tor node uses configured socks5 proxy" (#1635)

This reverts commit fc42f6314eb593b129ff0bb028c585ce677e0e6d.
This commit is contained in:
woodser 2025-03-05 11:19:41 -05:00 committed by GitHub
parent 580e5b672c
commit 52bf1edf79
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 11 deletions

View File

@ -22,7 +22,6 @@ import com.google.inject.Provider;
import com.google.inject.name.Named;
import haveno.common.config.Config;
import haveno.common.proto.network.NetworkProtoResolver;
import haveno.network.Socks5ProxyProvider;
import haveno.network.p2p.network.BanFilter;
import haveno.network.p2p.network.BridgeAddressProvider;
import haveno.network.p2p.network.LocalhostNetworkNode;
@ -56,8 +55,7 @@ public class NetworkNodeProvider implements Provider<NetworkNode> {
@Named(Config.TOR_CONTROL_PASSWORD) String password,
@Nullable @Named(Config.TOR_CONTROL_COOKIE_FILE) File cookieFile,
@Named(Config.TOR_STREAM_ISOLATION) boolean streamIsolation,
@Named(Config.TOR_CONTROL_USE_SAFE_COOKIE_AUTH) boolean useSafeCookieAuthentication,
Socks5ProxyProvider socks5ProxyProvider) {
@Named(Config.TOR_CONTROL_USE_SAFE_COOKIE_AUTH) boolean useSafeCookieAuthentication) {
if (useLocalhostForP2P) {
networkNode = new LocalhostNetworkNode(port, networkProtoResolver, banFilter, maxConnections);
} else {
@ -74,7 +72,7 @@ public class NetworkNodeProvider implements Provider<NetworkNode> {
if (torMode instanceof NewTor || torMode instanceof RunningTor) {
networkNode = new TorNetworkNodeNetlayer(port, networkProtoResolver, torMode, banFilter, maxConnections, streamIsolation, controlHost);
} else {
networkNode = new TorNetworkNodeDirectBind(port, networkProtoResolver, banFilter, maxConnections, hiddenServiceAddress, socks5ProxyProvider);
networkNode = new TorNetworkNodeDirectBind(port, networkProtoResolver, banFilter, maxConnections, hiddenServiceAddress);
}
}
}

View File

@ -1,7 +1,6 @@
package haveno.network.p2p.network;
import haveno.common.util.Hex;
import haveno.network.Socks5ProxyProvider;
import haveno.network.p2p.NodeAddress;
import haveno.common.UserThread;
@ -10,6 +9,7 @@ import haveno.common.proto.network.NetworkProtoResolver;
import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy;
import java.net.Socket;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.io.IOException;
@ -25,18 +25,16 @@ import static com.google.common.base.Preconditions.checkArgument;
@Slf4j
public class TorNetworkNodeDirectBind extends TorNetworkNode {
private static final int TOR_DATA_PORT = 9050; // TODO: config option?
private final String serviceAddress;
private final Socks5ProxyProvider socks5ProxyProvider;
public TorNetworkNodeDirectBind(int servicePort,
NetworkProtoResolver networkProtoResolver,
@Nullable BanFilter banFilter,
int maxConnections,
String hiddenServiceAddress,
Socks5ProxyProvider socks5ProxyProvider) {
String hiddenServiceAddress) {
super(servicePort, networkProtoResolver, banFilter, maxConnections);
this.serviceAddress = hiddenServiceAddress;
this.socks5ProxyProvider = socks5ProxyProvider;
}
@Override
@ -49,7 +47,7 @@ public class TorNetworkNodeDirectBind extends TorNetworkNode {
@Override
public Socks5Proxy getSocksProxy() {
Socks5Proxy proxy = new Socks5Proxy(socks5ProxyProvider.getSocks5Proxy().getInetAddress(), socks5ProxyProvider.getSocks5Proxy().getPort()); // TODO: can/should we return the same socks5 proxy directly?
Socks5Proxy proxy = new Socks5Proxy(InetAddress.getLoopbackAddress(), TOR_DATA_PORT);
proxy.resolveAddrLocally(false);
return proxy;
}
@ -59,7 +57,7 @@ public class TorNetworkNodeDirectBind extends TorNetworkNode {
// https://datatracker.ietf.org/doc/html/rfc1928 SOCKS5 Protocol
try {
checkArgument(peerNodeAddress.getHostName().endsWith(".onion"), "PeerAddress is not an onion address");
Socket sock = new Socket(getSocksProxy().getInetAddress(), getSocksProxy().getPort());
Socket sock = new Socket(InetAddress.getLoopbackAddress(), TOR_DATA_PORT);
sock.getOutputStream().write(Hex.decode("050100"));
String response = Hex.encode(sock.getInputStream().readNBytes(2));
if (!response.equalsIgnoreCase("0500")) {