summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2019-10-25 17:10:13 +0200
committercyBerta <cyberta@riseup.net>2019-10-25 17:10:13 +0200
commit761b604e14b14a86a357816b266e77d458137c83 (patch)
treef3dfefaeee6b71738fd1ae1d670d6392c38a8f2b /app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java
parent6b4f3597733ced8d312ed263d53b9669d6274d65 (diff)
implement error handling for edge case when Android
throws an nullpointer exception while it tries to prepare the VpnService
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java b/app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java
index 7ded9069..53bd9002 100644
--- a/app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java
+++ b/app/src/main/java/se/leap/bitmaskclient/EipSetupObserver.java
@@ -34,6 +34,7 @@ import static se.leap.bitmaskclient.Constants.BROADCAST_GATEWAY_SETUP_OBSERVER_E
import static se.leap.bitmaskclient.Constants.BROADCAST_PROVIDER_API_EVENT;
import static se.leap.bitmaskclient.Constants.BROADCAST_RESULT_CODE;
import static se.leap.bitmaskclient.Constants.BROADCAST_RESULT_KEY;
+import static se.leap.bitmaskclient.Constants.EIP_ACTION_PREPARE_VPN;
import static se.leap.bitmaskclient.Constants.EIP_ACTION_START;
import static se.leap.bitmaskclient.Constants.EIP_ACTION_START_ALWAYS_ON_VPN;
import static se.leap.bitmaskclient.Constants.EIP_REQUEST;
@@ -176,6 +177,13 @@ class EipSetupObserver extends BroadcastReceiver implements VpnStatus.StateListe
EipStatus.refresh();
}
break;
+ case EIP_ACTION_PREPARE_VPN:
+ if (resultCode == RESULT_CANCELED) {
+ VpnStatus.logError("Error preparing VpnService.");
+ finishGatewaySetup(false);
+ EipStatus.refresh();
+ }
+ break;
default:
break;
}