diff options
author | Parménides GV <parmegv@sdf.org> | 2014-10-07 21:17:12 +0200 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-10-07 21:17:12 +0200 |
commit | c4df01ab94c85ecf4a106b187a03e4859a857b1c (patch) | |
tree | 963423d6253b241d83442bba15b7abd303ea8b33 /app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java | |
parent | fa218f752003adcfb040053cfb88b36637060de7 (diff) |
Set up early routes on boot too.
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java index ec88fd48..5f7c0ab1 100644 --- a/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java +++ b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java @@ -1,11 +1,28 @@ package se.leap.bitmaskclient; -import android.content.Context; +import android.content.Intent; import android.net.VpnService; +import android.util.Log; public class VoidVpnService extends VpnService { - public void setUp(Context context) { - VpnService.prepare(context); // stops the VPN connection created by another application. + + static final String START_BLOCKING_VPN_PROFILE = "se.leap.bitmaskclient.START_BLOCKING_VPN_PROFILE"; + static final String TAG = VoidVpnService.class.getSimpleName(); + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + String action = intent.getAction(); + if (action == START_BLOCKING_VPN_PROFILE) { + new Thread(new Runnable() { + public void run() { + blockConnections(); + } + }).run(); + } + return 0; + } + + public void blockConnections() { Builder builder = new Builder(); builder.addAddress("10.42.0.8",16); builder.addRoute("0.0.0.0", 1); @@ -13,5 +30,12 @@ public class VoidVpnService extends VpnService { builder.addRoute("192.168.1.0", 24); builder.addDnsServer("10.42.0.1"); builder.establish(); + android.util.Log.d(TAG, "VoidVpnService set up"); + try { + new java.net.Socket("sdf.org", 80); + Log.d(TAG, "VoidVpnService doesn's stop traffic"); + } catch (Exception e) { + e.printStackTrace(); + } } } |