diff --git a/network/pom.xml b/network/pom.xml
index 428b5dfae5..24c1dd638c 100644
--- a/network/pom.xml
+++ b/network/pom.xml
@@ -23,20 +23,7 @@
universal
0.0.3-SNAPSHOT
system
- ${basedir}/libs/universal-0.0.3-SNAPSHOT.jar
-
-
- org.slf4j
- slf4j-simple
-
-
-
-
- com.msopentech.thali
- java
- 0.0.3-SNAPSHOT
- system
- ${basedir}/libs/java-0.0.3-SNAPSHOT.jar
+ ${basedir}/src/main/resources/jars/universal-0.0.3-SNAPSHOT.jar
org.slf4j
@@ -45,5 +32,35 @@
+
+ com.msopentech.thali
+ java
+ 0.0.3-SNAPSHOT
+ system
+ ${basedir}/src/main/resources/jars/java-0.0.3-SNAPSHOT.jar
+
+
+ org.slf4j
+ slf4j-simple
+
+
+
+
+
+ com.github.ravn.jsocks
+ jsocks
+ 0.0.1-SNAPSHOT
+ system
+ ${basedir}/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar
+
+
+
+ net.freehaven
+ jtorctl
+ 2015-09
+ system
+ ${basedir}/src/main/resources/jars/jtorctl-2015-09.jar
+
+
\ No newline at end of file
diff --git a/network/src/main/java/io/bitsquare/p2p/P2PService.java b/network/src/main/java/io/bitsquare/p2p/P2PService.java
index b651d02fa0..f78308fd59 100644
--- a/network/src/main/java/io/bitsquare/p2p/P2PService.java
+++ b/network/src/main/java/io/bitsquare/p2p/P2PService.java
@@ -124,7 +124,7 @@ public class P2PService {
// routing layer
routing = new Routing(networkNode, seedNodeAddresses);
-
+ if (useLocalhost) Routing.setSimulateAuthTorNode(2 * 1000);
// storage layer
dataStorage = new ProtectedExpirableDataStorage(routing, storageDir);
diff --git a/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java b/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java
index 307601cd13..2a85e30ef8 100644
--- a/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java
+++ b/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java
@@ -3,8 +3,8 @@ package io.bitsquare.p2p.network;
import com.google.common.util.concurrent.*;
import com.msopentech.thali.java.toronionproxy.JavaOnionProxyContext;
import com.msopentech.thali.java.toronionproxy.JavaOnionProxyManager;
+import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy;
import io.bitsquare.p2p.Address;
-import io.bitsquare.p2p.Message;
import io.bitsquare.p2p.Utils;
import io.bitsquare.p2p.network.messages.SelfTestMessage;
import io.nucleo.net.HiddenServiceDescriptor;
@@ -16,6 +16,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.net.Socket;
+import java.net.UnknownHostException;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
@@ -51,6 +52,12 @@ public class TorNetworkNode extends NetworkNode {
private Runnable shutDownCompleteHandler;
private boolean torShutDownComplete, networkNodeShutDownDoneComplete;
+ static {
+ try {
+ new Socks5Proxy("", 0);
+ } catch (UnknownHostException e) {
+ }
+ }
// /////////////////////////////////////////////////////////////////////////////////////////
// Constructor
@@ -121,16 +128,13 @@ public class TorNetworkNode extends NetworkNode {
}
};
- addMessageListener(new MessageListener() {
- @Override
- public void onMessage(Message message, Connection connection) {
- if (message instanceof SelfTestMessage) {
- if (((SelfTestMessage) message).nonce == nonce) {
- runSelfTest();
- } else {
- log.error("Nonce not matching our challenge. That should never happen.");
- selfTestFailed();
- }
+ addMessageListener((message, connection) -> {
+ if (message instanceof SelfTestMessage) {
+ if (((SelfTestMessage) message).nonce == nonce) {
+ runSelfTest();
+ } else {
+ log.error("Nonce not matching our challenge. That should never happen.");
+ selfTestFailed();
}
}
});
@@ -143,7 +147,8 @@ public class TorNetworkNode extends NetworkNode {
@Override
public void start(@Nullable SetupListener setupListener) {
- if (setupListener != null) addSetupListener(setupListener);
+ if (setupListener != null)
+ addSetupListener(setupListener);
// executorService might have been shutdown before a restart, so we create a new one
executorService = MoreExecutors.listeningDecorator(Executors.newCachedThreadPool());
@@ -300,7 +305,7 @@ public class TorNetworkNode extends NetworkNode {
}
public void onFailure(Throwable throwable) {
- log.error("TorNode creation failed");
+ log.error("TorNode creation failed with exception: " + throwable.getMessage());
restartTor();
}
});
diff --git a/network/src/main/java/io/bitsquare/p2p/routing/Routing.java b/network/src/main/java/io/bitsquare/p2p/routing/Routing.java
index f756299026..6a522b25de 100644
--- a/network/src/main/java/io/bitsquare/p2p/routing/Routing.java
+++ b/network/src/main/java/io/bitsquare/p2p/routing/Routing.java
@@ -19,7 +19,7 @@ import java.util.stream.Collectors;
public class Routing {
private static final Logger log = LoggerFactory.getLogger(Routing.class);
- private static int simulateAuthTorNode = 2 * 1000;
+ private static int simulateAuthTorNode = 0;
public static void setSimulateAuthTorNode(int simulateAuthTorNode) {
Routing.simulateAuthTorNode = simulateAuthTorNode;
diff --git a/network/libs/java-0.0.3-SNAPSHOT.jar b/network/src/main/resources/jars/java-0.0.3-SNAPSHOT.jar
similarity index 100%
rename from network/libs/java-0.0.3-SNAPSHOT.jar
rename to network/src/main/resources/jars/java-0.0.3-SNAPSHOT.jar
diff --git a/network/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar b/network/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar
new file mode 100644
index 0000000000..6f140458ad
Binary files /dev/null and b/network/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar differ
diff --git a/network/src/main/resources/jars/jtorctl-2015-09.jar b/network/src/main/resources/jars/jtorctl-2015-09.jar
new file mode 100644
index 0000000000..2ddc5374da
Binary files /dev/null and b/network/src/main/resources/jars/jtorctl-2015-09.jar differ
diff --git a/network/libs/universal-0.0.3-SNAPSHOT.jar b/network/src/main/resources/jars/universal-0.0.3-SNAPSHOT.jar
similarity index 100%
rename from network/libs/universal-0.0.3-SNAPSHOT.jar
rename to network/src/main/resources/jars/universal-0.0.3-SNAPSHOT.jar