mirror of
https://github.com/schwabe/ics-openvpn.git
synced 2024-09-19 19:42:29 +02:00
enhance AIDL-API to allow passing extras during profile-import
This commit is contained in:
parent
0df320119c
commit
ad7dfd5972
@ -67,4 +67,10 @@ interface IOpenVPNAPIService {
|
|||||||
/** Same as startVPN(String), but also takes a Bundle with extra parameters,
|
/** Same as startVPN(String), but also takes a Bundle with extra parameters,
|
||||||
* which will be applied to the created VPNProfile (e.g. allow vpn bypass). */
|
* which will be applied to the created VPNProfile (e.g. allow vpn bypass). */
|
||||||
void startVPNwithExtras(in String inlineconfig, in Bundle extras);
|
void startVPNwithExtras(in String inlineconfig, in Bundle extras);
|
||||||
|
|
||||||
|
/** Same as addNewVPNProfile(String, boolean, String) but giving possibility to pass a Bundle like
|
||||||
|
* in startVPNwithExtras(String, Bundle) to apply e.g. "allow vpn bypass" to profile.
|
||||||
|
* up to now the only extra that can be put is a boolean "de.blinkt.openvpn.api.ALLOW_VPN_BYPASS"
|
||||||
|
*/
|
||||||
|
APIVpnProfile addNewVPNProfileWithExtras (String name, boolean userEditable, String config, in Bundle extras);
|
||||||
}
|
}
|
@ -151,6 +151,13 @@ public class ExternalOpenVPNService extends Service implements StateListener {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateProfileFromExtras(Bundle extras, VpnProfile vp) {
|
||||||
|
if (extras != null) {
|
||||||
|
vp.mAllowAppVpnBypass = extras.getBoolean(EXTRA_INLINE_PROFILE_ALLOW_VPN_BYPASS, false);
|
||||||
|
VpnStatus.logDebug("got extra " + EXTRA_INLINE_PROFILE_ALLOW_VPN_BYPASS + ", mAllowAppVpnBypass=" + vp.mAllowAppVpnBypass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startProfile(String profileUUID) throws RemoteException {
|
public void startProfile(String profileUUID) throws RemoteException {
|
||||||
mExtAppDb.checkOpenVPNPermission(getPackageManager());
|
mExtAppDb.checkOpenVPNPermission(getPackageManager());
|
||||||
@ -176,9 +183,7 @@ public class ExternalOpenVPNService extends Service implements StateListener {
|
|||||||
|
|
||||||
vp.mProfileCreator = callingApp;
|
vp.mProfileCreator = callingApp;
|
||||||
|
|
||||||
if (extras != null) {
|
updateProfileFromExtras(extras, vp);
|
||||||
vp.mAllowAppVpnBypass = extras.getBoolean(EXTRA_INLINE_PROFILE_ALLOW_VPN_BYPASS, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*int needpw = vp.needUserPWInput(false);
|
/*int needpw = vp.needUserPWInput(false);
|
||||||
if(needpw !=0)
|
if(needpw !=0)
|
||||||
@ -207,6 +212,11 @@ public class ExternalOpenVPNService extends Service implements StateListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public APIVpnProfile addNewVPNProfile(String name, boolean userEditable, String config) throws RemoteException {
|
public APIVpnProfile addNewVPNProfile(String name, boolean userEditable, String config) throws RemoteException {
|
||||||
|
return addNewVPNProfileWithExtras(name, userEditable, config, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public APIVpnProfile addNewVPNProfileWithExtras(String name, boolean userEditable, String config, Bundle extras) throws RemoteException {
|
||||||
String callingPackage = mExtAppDb.checkOpenVPNPermission(getPackageManager());
|
String callingPackage = mExtAppDb.checkOpenVPNPermission(getPackageManager());
|
||||||
|
|
||||||
ConfigParser cp = new ConfigParser();
|
ConfigParser cp = new ConfigParser();
|
||||||
@ -216,6 +226,7 @@ public class ExternalOpenVPNService extends Service implements StateListener {
|
|||||||
vp.mName = name;
|
vp.mName = name;
|
||||||
vp.mProfileCreator = callingPackage;
|
vp.mProfileCreator = callingPackage;
|
||||||
vp.mUserEditable = userEditable;
|
vp.mUserEditable = userEditable;
|
||||||
|
updateProfileFromExtras(extras, vp);
|
||||||
ProfileManager pm = ProfileManager.getInstance(getBaseContext());
|
ProfileManager pm = ProfileManager.getInstance(getBaseContext());
|
||||||
pm.addProfile(vp);
|
pm.addProfile(vp);
|
||||||
pm.saveProfile(ExternalOpenVPNService.this, vp);
|
pm.saveProfile(ExternalOpenVPNService.this, vp);
|
||||||
|
@ -63,4 +63,10 @@ interface IOpenVPNAPIService {
|
|||||||
|
|
||||||
/** Use a profile with all certificates etc. embedded */
|
/** Use a profile with all certificates etc. embedded */
|
||||||
APIVpnProfile addNewVPNProfile (String name, boolean userEditable, String config);
|
APIVpnProfile addNewVPNProfile (String name, boolean userEditable, String config);
|
||||||
|
|
||||||
|
/** Same as addNewVPNProfile(String, boolean, String) but giving possibility to pass a Bundle like
|
||||||
|
* in startVPNwithExtras(String, Bundle) to apply e.g. "allow vpn bypass" to profile.
|
||||||
|
* up to now the only extra that can be put is a boolean "de.blinkt.openvpn.api.ALLOW_VPN_BYPASS"
|
||||||
|
*/
|
||||||
|
APIVpnProfile addNewVPNProfileWithExtras (String name, boolean userEditable, String config, in Bundle extras);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user