summaryrefslogtreecommitdiff
path: root/app/src/main/java/de
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2019-08-01 23:16:22 +0200
committercyBerta <cyberta@riseup.net>2019-08-02 01:49:37 +0200
commit5a883a2119500c1d25a7f7dc650f62d5262cb9cc (patch)
tree7336b7f0a8ca12074a24018aee56ca4246bf9dac /app/src/main/java/de
parent8a5c789dca4c06d6b8a9479dd97d6476af6bbb3f (diff)
add Shapeshifter class managing shapeshifter go library
Diffstat (limited to 'app/src/main/java/de')
-rw-r--r--app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java32
1 files changed, 18 insertions, 14 deletions
diff --git a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
index 32e00f86..6f817323 100644
--- a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
+++ b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
@@ -47,6 +47,7 @@ import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.VpnNotificationManager;
import se.leap.bitmaskclient.pluggableTransports.Dispatcher;
import de.blinkt.openvpn.core.connection.Obfs4Connection;
+import se.leap.bitmaskclient.pluggableTransports.Shapeshifter;
import static de.blinkt.openvpn.core.ConnectionStatus.LEVEL_CONNECTED;
import static de.blinkt.openvpn.core.ConnectionStatus.LEVEL_WAITING_FOR_USER_INPUT;
@@ -88,7 +89,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
private Toast mlastToast;
private Runnable mOpenVPNThread;
private VpnNotificationManager notificationManager;
- private Dispatcher dispatcher;
+ private Shapeshifter shapeshifter;
private static final int PRIORITY_MIN = -2;
private static final int PRIORITY_DEFAULT = 0;
@@ -246,9 +247,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
if(isVpnRunning()) {
if (getManagement() != null && getManagement().stopVPN(replaceConnection)) {
if (!replaceConnection) {
- if (dispatcher != null && dispatcher.isRunning()) {
- dispatcher.stop();
+ if (shapeshifter != null) {
+ shapeshifter.stop();
}
+ /*if (dispatcher != null && dispatcher.isRunning()) {
+ dispatcher.stop();
+ }*/
VpnStatus.updateStateString("NOPROCESS", "VPN STOPPED", R.string.state_noprocess, ConnectionStatus.LEVEL_NOTCONNECTED);
}
return true;
@@ -256,9 +260,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
return false;
} else {
if (!replaceConnection) {
- if (dispatcher != null && dispatcher.isRunning()) {
- dispatcher.stop();
+ if (shapeshifter != null) {
+ shapeshifter.stop();
}
+ /*if (dispatcher != null && dispatcher.isRunning()) {
+ dispatcher.stop();
+ }*/
VpnStatus.updateStateString("NOPROCESS", "VPN STOPPED", R.string.state_noprocess, ConnectionStatus.LEVEL_NOTCONNECTED);
return true;
}
@@ -387,15 +394,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
if (mProfile.mUsePluggableTransports) {
Obfs4Connection obfs4Connection = (Obfs4Connection) connection;
- dispatcher = new Dispatcher(this, obfs4Connection.getDispatcherOptions());
- dispatcher.initSync();
-
- if (dispatcher.isRunning()) {
- connection.setServerPort(dispatcher.getPort());
- Log.d(TAG, "Dispatcher running. Profile server name and port: " +
- connection.getServerName() + ":" + connection.getServerPort());
- VpnStatus.logInfo("Dispatcher running. Profile server name and port: " +
- connection.getServerName() + ":" + connection.getServerPort());
+ //dispatcher = new Dispatcher(this, obfs4Connection.getDispatcherOptions());
+ //dispatcher.initSync();
+ shapeshifter = new Shapeshifter(obfs4Connection.getDispatcherOptions());
+ if (shapeshifter.start()) {
+ // FIXME: we already know the shapeshifter port earlier!
+ connection.setServerPort(Shapeshifter.DISPATCHER_PORT);
} else {
Log.e(TAG, "Cannot initialize dispatcher for obfs4 connection. Shutting down.");
VpnStatus.logError("Cannot initialize dispatcher for obfs4 connection. Shutting down.");