aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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();