From 4a04bd3da5fc3d73b83c924a87db867dc899ec2f Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 22 Jun 2017 12:01:42 +0200 Subject: [PATCH] android: Import custom subnets from profile file --- .../android/ui/VpnProfileImportActivity.java | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileImportActivity.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileImportActivity.java index 16f3530ff..1e9505205 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileImportActivity.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileImportActivity.java @@ -490,16 +490,10 @@ public class VpnProfileImportActivity extends AppCompatActivity JSONObject split = obj.optJSONObject("split-tunneling"); if (split != null) { - String excluded = split.optString("excluded", null); - if (excluded != null && !excluded.isEmpty()) - { - if (IPRangeSet.fromString(excluded) == null) - { - throw new JSONException(getString(R.string.profile_import_failed_value, - "split-tunneling.excluded")); - } - profile.setExcludedSubnets(excluded); - } + String included = getSubnets(split, "subnets"); + profile.setIncludedSubnets(included != null ? included : null); + String excluded = getSubnets(split, "excluded"); + profile.setExcludedSubnets(excluded != null ? excluded : null); int st = 0; st |= split.optBoolean("block-ipv4") ? VpnProfile.SPLIT_TUNNELING_BLOCK_IPV4 : 0; st |= split.optBoolean("block-ipv6") ? VpnProfile.SPLIT_TUNNELING_BLOCK_IPV6 : 0; @@ -514,6 +508,21 @@ public class VpnProfileImportActivity extends AppCompatActivity return res < min || res > max ? null : res; } + private String getSubnets(JSONObject split, String key) throws JSONException + { + String subnets = split.optString(key, null); + if (subnets != null && !subnets.isEmpty()) + { + if (IPRangeSet.fromString(subnets) == null) + { + throw new JSONException(getString(R.string.profile_import_failed_value, + "split-tunneling." + key)); + } + return subnets; + } + return null; + } + /** * Save or update the profile depending on whether we actually have a * profile object or not (this was created in updateProfileData)