aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileImportActivity.java26
1 files changed, 22 insertions, 4 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 d4c9d32e8..5833258d2 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
@@ -527,15 +527,33 @@ public class VpnProfileImportActivity extends AppCompatActivity
private String getSubnets(JSONObject split, String key) throws JSONException
{
- String subnets = split.optString(key, null);
- if (subnets != null && !subnets.isEmpty())
+ ArrayList<String> subnets = new ArrayList<>();
+ JSONArray arr = split.optJSONArray(key);
+ if (arr != null)
+ {
+ for (int i = 0; i < arr.length(); i++)
+ { /* replace all spaces, e.g. in "192.168.1.1 - 192.168.1.10" */
+ subnets.add(arr.getString(i).replace(" ", ""));
+ }
+ }
+ else
+ {
+ String value = split.optString(key, null);
+ if (!TextUtils.isEmpty(value))
+ {
+ subnets.add(value);
+ }
+ }
+ if (subnets.size() > 0)
{
- if (IPRangeSet.fromString(subnets) == null)
+ String joined = TextUtils.join(" ", subnets);
+ IPRangeSet ranges = IPRangeSet.fromString(joined);
+ if (ranges == null)
{
throw new JSONException(getString(R.string.profile_import_failed_value,
"split-tunneling." + key));
}
- return subnets;
+ return ranges.toString();
}
return null;
}