aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2017-06-22 11:23:25 +0200
committerTobias Brunner <tobias@strongswan.org>2017-07-03 10:27:52 +0200
commitabf02a21762a51b9b8e2c95ff464c9e9c87f497b (patch)
tree27ea166d0d6387ff47623566f089d674517e919b
parenta9875259e8c729057a7b6af178cd3fbe12275157 (diff)
downloadstrongswan-abf02a21762a51b9b8e2c95ff464c9e9c87f497b.tar.bz2
strongswan-abf02a21762a51b9b8e2c95ff464c9e9c87f497b.tar.xz
android: Add ability to add a range set to another
-rw-r--r--src/frontends/android/app/src/main/java/org/strongswan/android/utils/IPRangeSet.java15
-rw-r--r--src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java27
2 files changed, 42 insertions, 0 deletions
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/utils/IPRangeSet.java b/src/frontends/android/app/src/main/java/org/strongswan/android/utils/IPRangeSet.java
index 3ced7bb82..d5f4b619f 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/utils/IPRangeSet.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/utils/IPRangeSet.java
@@ -85,6 +85,21 @@ public class IPRangeSet implements Iterable<IPRange>
}
/**
+ * Add all ranges from the given set.
+ */
+ public void add(IPRangeSet ranges)
+ {
+ if (ranges == this)
+ {
+ return;
+ }
+ for (IPRange range : ranges.mRanges)
+ {
+ add(range);
+ }
+ }
+
+ /**
* Add all ranges from the given collection to this set.
*/
public void addAll(Collection<? extends IPRange> coll)
diff --git a/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java b/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java
index 659525b59..3b054ceed 100644
--- a/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java
+++ b/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java
@@ -143,6 +143,33 @@ public class IPRangeSetTest
}
@Test
+ public void testAddSet() throws UnknownHostException
+ {
+ IPRangeSet set = new IPRangeSet();
+ IPRangeSet other = new IPRangeSet();
+ other.add(new IPRange("192.168.1.0/24"));
+ other.add(new IPRange("10.0.1.0/24"));
+ other.add(new IPRange("255.255.255.255/32"));
+ set.add(other);
+ assertEquals("size", 3, set.size());
+ assertSubnets(set, new IPRange("10.0.1.0/24"), new IPRange("192.168.1.0/24"),
+ new IPRange("255.255.255.255/32"));
+ }
+
+ @Test
+ public void testAddSetIdent() throws UnknownHostException
+ {
+ IPRangeSet set = new IPRangeSet();
+ set.add(new IPRange("192.168.1.0/24"));
+ set.add(new IPRange("10.0.1.0/24"));
+ set.add(new IPRange("255.255.255.255/32"));
+ set.add(set);
+ assertEquals("size", 3, set.size());
+ assertSubnets(set, new IPRange("10.0.1.0/24"), new IPRange("192.168.1.0/24"),
+ new IPRange("255.255.255.255/32"));
+ }
+
+ @Test
public void testRemoveNothing() throws UnknownHostException
{
IPRangeSet set = new IPRangeSet();