diff options
author | Arne Schwabe <arne@rfc2549.org> | 2013-05-25 11:50:43 +0200 |
---|---|---|
committer | Arne Schwabe <arne@rfc2549.org> | 2013-05-25 11:50:43 +0200 |
commit | 9ea8c8a18a4e02531df8acb87ad12a578805ee37 (patch) | |
tree | 581af0133c86940337508f28b20914d1626ded0a /src/de/blinkt/openvpn | |
parent | 12d79b76ed281887df1905b9183853ff06f1fab5 (diff) |
Extend external API documentation and change hasPermission to prepareVPNService
Diffstat (limited to 'src/de/blinkt/openvpn')
-rw-r--r-- | src/de/blinkt/openvpn/api/ExternalOpenVPNService.java | 7 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/api/IOpenVPNAPIService.aidl | 8 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/de/blinkt/openvpn/api/ExternalOpenVPNService.java b/src/de/blinkt/openvpn/api/ExternalOpenVPNService.java index 21580eb4..866fb698 100644 --- a/src/de/blinkt/openvpn/api/ExternalOpenVPNService.java +++ b/src/de/blinkt/openvpn/api/ExternalOpenVPNService.java @@ -177,10 +177,13 @@ public class ExternalOpenVPNService extends Service implements StateListener { }
@Override
- public boolean hasPermission() throws RemoteException {
+ public Intent prepareVPNService() throws RemoteException {
checkOpenVPNPermission();
- return VpnService.prepare(ExternalOpenVPNService.this)==null;
+ if(VpnService.prepare(ExternalOpenVPNService.this)==null)
+ return null;
+ else
+ return new Intent(getBaseContext(), GrantPermissionsActivity.class);
}
diff --git a/src/de/blinkt/openvpn/api/IOpenVPNAPIService.aidl b/src/de/blinkt/openvpn/api/IOpenVPNAPIService.aidl index c1e32eac..3e0b94e4 100644 --- a/src/de/blinkt/openvpn/api/IOpenVPNAPIService.aidl +++ b/src/de/blinkt/openvpn/api/IOpenVPNAPIService.aidl @@ -19,11 +19,13 @@ interface IOpenVPNAPIService { void startVPN (String inlineconfig);
/* This permission framework is used to avoid confused deputy style attack to the VPN
- * calling this will give null if the app is allowed to use the frame and null otherwise */
+ * calling this will give null if the app is allowed to use the external API and an Intent
+ * that can be launched to request permissions otherwise */
Intent prepare (String packagename);
- /* Tells the calling app wether we already have permission to avoid calling the activity/flicker */
- boolean hasPermission();
+ /* Used to trigger to the Android VPN permission dialog (VPNService.prepare()) in advance,
+ * if this return null OpenVPN for ANdroid already has the permissions */
+ Intent prepareVPNService ();
/* Disconnect the VPN */
void disconnect();
|