From daba4c2c311d7a0b011267b78199e3695db6d81b Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Wed, 5 Mar 2025 11:16:37 -0500 Subject: [PATCH] Revert "direct bind tor node uses configured socks5 proxy" This reverts commit fc42f6314eb593b129ff0bb028c585ce677e0e6d. --- .../java/haveno/network/p2p/NetworkNodeProvider.java | 6 ++---- .../p2p/network/TorNetworkNodeDirectBind.java | 12 +++++------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/p2p/src/main/java/haveno/network/p2p/NetworkNodeProvider.java b/p2p/src/main/java/haveno/network/p2p/NetworkNodeProvider.java index fa1aa61470..798d162357 100644 --- a/p2p/src/main/java/haveno/network/p2p/NetworkNodeProvider.java +++ b/p2p/src/main/java/haveno/network/p2p/NetworkNodeProvider.java @@ -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 { @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 { 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); } } } diff --git a/p2p/src/main/java/haveno/network/p2p/network/TorNetworkNodeDirectBind.java b/p2p/src/main/java/haveno/network/p2p/network/TorNetworkNodeDirectBind.java index 6ccd5b1314..8333af3f8b 100644 --- a/p2p/src/main/java/haveno/network/p2p/network/TorNetworkNodeDirectBind.java +++ b/p2p/src/main/java/haveno/network/p2p/network/TorNetworkNodeDirectBind.java @@ -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")) {