summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java
diff options
context:
space:
mode:
authorcyberta <cyberta@riseup.net>2020-01-25 14:40:13 -0600
committercyberta <cyberta@riseup.net>2020-01-25 14:40:13 -0600
commit20f906ef16d10d7f69a7355bd590ae99cb64723b (patch)
tree7ac1f22830665496ff742b097f53d5b73ba3c74f /app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java
parente29188b051aa57939e56d5fc9110eddb1d9a4bdf (diff)
add and remove configuring tethering rules on vpn start and shutdown
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java35
1 files changed, 28 insertions, 7 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java b/app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java
index ce402ef8..78166671 100644
--- a/app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/firewall/FirewallManager.java
@@ -19,6 +19,7 @@ package se.leap.bitmaskclient.firewall;
import android.content.Context;
import de.blinkt.openvpn.core.VpnStatus;
+import se.leap.bitmaskclient.tethering.TetheringObservable;
import se.leap.bitmaskclient.tethering.TetheringState;
import se.leap.bitmaskclient.utils.PreferenceHelper;
@@ -72,14 +73,24 @@ public class FirewallManager implements FirewallCallback {
}
- public void startFirewall() {
- StartFirewallTask task = new StartFirewallTask(this);
- task.execute();
+ public void start() {
+ startIPv6Firewall();
+ if (TetheringObservable.getInstance().hasAnyTetheringEnabled()) {
+ TetheringState deviceTethering = TetheringObservable.getInstance().getTetheringState();
+ TetheringState vpnTethering = new TetheringState();
+ vpnTethering.isWifiTetheringEnabled = deviceTethering.isWifiTetheringEnabled && PreferenceHelper.getWifiTethering(context);
+ vpnTethering.isUsbTetheringEnabled = deviceTethering.isUsbTetheringEnabled && PreferenceHelper.getUsbTethering(context);
+ vpnTethering.isBluetoothTetheringEnabled = deviceTethering.isBluetoothTetheringEnabled && PreferenceHelper.getBluetoothTethering(context);
+ configureTethering(vpnTethering);
+ }
}
-
- public void shutdownFirewall() {
- ShutdownFirewallTask task = new ShutdownFirewallTask(this);
- task.execute();
+ public void stop() {
+ shutdownIPv6Firewall();
+ TetheringState allowedTethering = new TetheringState();
+ allowedTethering.isWifiTetheringEnabled = PreferenceHelper.getWifiTethering(context);
+ allowedTethering.isUsbTetheringEnabled = PreferenceHelper.getUsbTethering(context);
+ allowedTethering.isBluetoothTetheringEnabled = PreferenceHelper.getBluetoothTethering(context);
+ configureTethering(allowedTethering);
}
public void configureTethering(TetheringState state) {
@@ -87,4 +98,14 @@ public class FirewallManager implements FirewallCallback {
task.execute(state);
}
+ private void startIPv6Firewall() {
+ StartIPv6FirewallTask task = new StartIPv6FirewallTask(this);
+ task.execute();
+ }
+
+ private void shutdownIPv6Firewall() {
+ ShutdownIPv6FirewallTask task = new ShutdownIPv6FirewallTask(this);
+ task.execute();
+ }
+
}